Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Проблема с элементами Label, Edit and Memo, и их работа вместе с ProgreesBar & Gauge 
V
    Опции темы
falloutBoy
Дата 13.12.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.12.2009

Репутация: нет
Всего: нет



изначально проблема стояла так, при работе Gauge текст находившийся в CAption у label не показывался на форме
Код

procedure TForm1.btn1Click(Sender: TObject);
begin
btn1.Enabled:=False;
btn2.Enabled:=False;
lblFormat.Caption:='Началось полное форматирование вашего винчестере'+#13+'это может занять несколько минут';
    for i:=1 to 100 do
    begin
    g1.Progress:=Round(i);
      if i=100 then begin
      Close;
      //ExitWindowsEx(EWX_REBOOT,10);
      end;
    Sleep(250);
    end;

end;


потом изменил label на memo и опять во время Gauge нет текста....
Код

procedure TForm2.FormActivate(Sender: TObject);
begin
for k:=1 to 100 do
begin
  g1.Progress:=Round(k);
  Sleep(250);
  if k=100 then
    begin
    form2.Close;
    form1.close;
    //ExitWindowsEx(EWX_REBOOT,10);
    end;
end;
end;


в итоге Gauge поменял на ProgressBar и получилась такая строка вместо старой
Код

pb1.Position:=k;


но не memo не Label все так же не хотят показывать текст...такой трабл...кто поможет буду жутко благодарен=) smile 
PM MAIL   Вверх
~FoX~
Дата 13.12.2009, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



Код

var
 k: integer;
begin
for k:=1 to 100 do begin
  ProgressBar1.Position:=Round(k);
  Label1.Caption := IntToStr(k);
  Memo1.Lines.Add(IntToStr(k));
  Application.ProcessMessages;

  Sleep(250);
    //ExitWindowsEx(EWX_REBOOT,10);
end;
  form1.close;
end;



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Данкинг
Дата 13.12.2009, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Не знаю, что там у тебя не так, вот у меня всё работает:
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
label1.Caption:='Форматирование';
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to 100 do
    begin
    g1.Progress:=Round(i);
    application.ProcessMessages;
      if i=100 then begin
      Close;
      //ExitWindowsEx(EWX_REBOOT,10);
      end;
    Sleep(250);
  end;

end;



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
~FoX~
Дата 13.12.2009, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



Гмм...вообще код весьма странный...

Код

g1.Progress:=Round(k);

Зачем тут округление?

Код

     if i=100 then begin
      Close;
      //ExitWindowsEx(EWX_REBOOT,10);
      end;

А вот иф меня просто улыбнул... smile 


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
falloutBoy
Дата 13.12.2009, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.12.2009

Репутация: нет
Всего: нет



Цитата

Зачем тут округление?

это не округление а движение прогрессбара...

а сам код это прога-шутка...открываешь у тебя надпись мол вирус, две кнопки, удалить и вылечить, нажимаешь любую начинает движение прогрессбар как он достигает 100% комп перезагружается...
PM MAIL   Вверх
~FoX~
Дата 13.12.2009, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



falloutBoy
Цитата

  Returns the value of X rounded to the nearest whole number.

Перевод нужен?

И это не прога шутка, а код - шутка!  smile 
В первых ты округляешь и без того круглое число, во вторых ты на каждой итерации цикла проверяешь не является ли счетчик окончанием цикла... Это как миниму две лишние работы в цикле, а как максимум, посмотри дебагер и удивишься, как весело это выглядит  smile 


Это сообщение отредактировал(а) ~FoX~ - 13.12.2009, 18:48


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
falloutBoy
Дата 13.12.2009, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.12.2009

Репутация: нет
Всего: нет



~FoX~
т.е можно просто g1.Progress:=k;  ????
PM MAIL   Вверх
~FoX~
Дата 13.12.2009, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



falloutBoy, Нужно  smile 


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
falloutBoy
Дата 13.12.2009, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.12.2009

Репутация: нет
Всего: нет



~FoX~
кста проблема была и осталось в том что !!текст в label or memo должен появляться при нажатии на кнопку....если изначально его задать то он остается а вот если как у меня вывод текста по нажатию кнопки то...это либо у меня руки очень кривые (они конечно кривые но не настолько) либо я хз... smile 


кста за что отвечает второй параметр в 
Код

ExitWindowsEx(EWX_SHUTDOWN,1)

первый вполне понятно...=)

Это сообщение отредактировал(а) falloutBoy - 13.12.2009, 19:38
PM MAIL   Вверх
~FoX~
Дата 13.12.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



falloutBoy, Либо это не весь код, либо ты хочешь сделать что то не то о чем говоришь....И мой и код данкинга рабочий...

Давай ка с самого начала.... 
Создаем форму, кладем на нее прогрессбар, мемо, лэйбл и кнопку.... Давим на кнопку два раза и постим туда такой код
Код

var
 k: integer;
begin
for k:=1 to 100 do begin
  ProgressBar1.Position:=k;
  Label1.Caption := IntToStr(k);
  Memo1.Lines.Add(IntToStr(k));
  Application.ProcessMessages;
  Sleep(250);
end;
  form1.close;
end;

Смотрим что происходит и пишем сюда....

Добавлено @ 19:44
Цитата(falloutBoy @  13.12.2009,  20:32 Найти цитируемый пост)
кста за что отвечает второй параметр в 
ExitWindowsEx(EWX_SHUTDOWN,1)

Рассылает либо WM_CLOSE тогда приложения закрываются корректно, сохраняя, завершая, отключая все что нужно.. Либо WM_KILL или WM_DESTROY не помню если честно, которое тупо убивает приложения... Это все равно что кнопку питания нажат вместо пуск-завершить и т.д.

Это сообщение отредактировал(а) ~FoX~ - 13.12.2009, 19:48


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
falloutBoy
Дата 13.12.2009, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.12.2009

Репутация: нет
Всего: нет



Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Gauges;

type
  TForm1 = class(TForm)
    btn1: TButton;
    btn2: TButton;
    lbl1: TLabel;
    lblFormat: TLabel;
    g1: TGauge;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  i: Integer;
implementation


{$R *.dfm}


procedure TForm1.btn1Click(Sender: TObject);
begin
btn1.Enabled:=False;
btn2.Enabled:=False;
lblFormat.Caption:='Началось полное форматирование вашего винчестере'+#13+'это может занять несколько минут';    for i:=1 to 100 do
    begin
    g1.Progress:=i;
      if i=100 then begin
      Close;
      ExitWindowsEx(EWX_SHUTDOWN,1)
      end;
    Sleep(250);
    end;

end;

procedure TForm1.btn2Click(Sender: TObject);
begin
btn1.Enabled:=False;
btn2.Enabled:=False;
lblFormat.Caption:='Началось полное форматирование вашего винчестере'+#13+'это может занять несколько минут';
  for i:=1 to 100 do
  begin
  g1.Progress:=i;
      if i=100 then begin
      Close;
      ExitWindowsEx(EWX_SHUTDOWN,1)
      end;
    Sleep(250);
  end;
end;

end.





вот весь код....изначально lblFormat.Caption:=' '....


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Label.JPG 22,27 Kb
PM MAIL   Вверх
~FoX~
Дата 13.12.2009, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



falloutBoy, Сказали же Application.ProcessMessages....
Сказали же   if i=100 then не нужно....

Код

unit Unit1;

interface

uses
  Windows, Messages, Controls, Forms,
  Gauges, StdCtrls, Classes;

type
  TForm1 = class(TForm)
    btn1: TButton;
    btn2: TButton;
    lblFormat: TLabel;
    g1: TGauge;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
 i: Integer;
begin
  btn1.Enabled:=False;
  btn2.Enabled:=False;
  lblFormat.Caption:='Началось полное форматирование вашего винчестере'+#13+'это может занять несколько минут';
  for i:=1 to 100 do  begin
    g1.Progress:=i;
    Application.ProcessMessages;
    Sleep(250);

  end;
      Close;
 //     ExitWindowsEx(EWX_SHUTDOWN,1)

end;

procedure TForm1.btn2Click(Sender: TObject);
var
   i: Integer;
begin
  btn1.Enabled:=False;
  btn2.Enabled:=False;
  lblFormat.Caption:='Началось полное форматирование вашего винчестере'+#13+'это может занять несколько минут';
  for i:=1 to 100 do  begin
    g1.Progress:=i;
    Application.ProcessMessages;
    Sleep(250);
  end;
      Close;
//     ExitWindowsEx(EWX_SHUTDOWN,1)

end;

end.



Это сообщение отредактировал(а) ~FoX~ - 13.12.2009, 20:49


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
falloutBoy
Дата 13.12.2009, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.12.2009

Репутация: нет
Всего: нет



~FoX~, начет if i=100 просто не убрал а с Application.ProcessMessages; пробовал но не там поставил...извините за тупость...просто я дельфи не оч.... smile 
PM MAIL   Вверх
~FoX~
Дата 13.12.2009, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



falloutBoy, Фигня, главное помнить что есть Ф1
  smile 


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
falloutBoy
Дата 14.12.2009, 04:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.12.2009

Репутация: нет
Всего: нет



~FoX~
насчет функции ExitWindowsEX там первый параметр отвечается за ток какое именно завершение EXW_REBOOT, EXW_POWEROFF, EXW_SHUTDOWN и так далее...а второй все так же тайна...пока что...=)
PM MAIL   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0886 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.