Модераторы: 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   Вверх
amsoft
Дата 14.12.2009, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 17.10.2009
Где: KZ, Astana

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



falloutBoy


Цитата

BOOL ExitWindowsEx(
    UINT uFlags,    // shutdown operation
    DWORD dwReserved  // reserved
   );

...

dwReserved - Reserved; this parameter is ignored. 


он ничего не значит, просто его добавили на будущее, для совместимости.
--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин
PM   Вверх
~FoX~
Дата 14.12.2009, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Эгм, amsoft, у меня в МСДНе вот что написано...
Цитата

BOOL WINAPI ExitWindowsEx(
  __in  UINT uFlags,
  __in  DWORD dwReason
);



dwReason 
The reason for initiating the shutdown. This parameter must be one of the system shutdown reason codes.

If this parameter is zero, the SHTDN_REASON_FLAG_PLANNED reason code will not be set and therefore the default action is an undefined shutdown that is logged as "No title for this reason could be found". By default, it is also an unplanned shutdown. Depending on how the system is configured, an unplanned shutdown triggers the creation of a file that contains the system state information, which can delay shutdown. Therefore, do not use zero for this parameter.


Добавлено через 53 секунды
Аааа...это на серверных платформах...Сори не посмотрел совместимость


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 7.11.2009
Где: Беларусь, Минск

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



Цитата(falloutBoy @ 14.12.2009,  04:00)
~FoX~
насчет функции ExitWindowsEX там первый параметр отвечается за ток какое именно завершение EXW_REBOOT, EXW_POWEROFF, EXW_SHUTDOWN и так далее...а второй все так же тайна...пока что...=)

Может 1 это true, ну а 0 это false. Попробуй нолик поставь, будет эта функция выполняться или нет.


--------------------
Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет.
PM MAIL   Вверх
Bitter
Дата 14.12.2009, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

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



Все так увлеченно занялись уничтожением винта бедной жертвы, что не заметили ошибки в предложении:
"Началось полное форматирование вашего винчестере'+#13+'это может занять несколько минут"
 smile 

PM MAIL ICQ Skype   Вверх
bems
Дата 14.12.2009, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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




 ! 
bems
Хватит глупых шуток



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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