Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > processmessages и курсор


Автор: Chyslyvchyk 10.8.2007, 09:31
В цикле while not table.eof do берутся данные из двух полей и прописываются на форме в две labels. Чтобы их было видно в процессе выполнения цикла, используется application.processmessages. В итоге перестает работать screen.cursor := crhourglass. 

Как заставить курсор быть crhourglass и отображать динамически инфу в labels во время цикла?

Автор: Telepyz 10.8.2007, 10:32
Код

screen.cursor := crHourGlass;
 while not table.eof do
  // твой цикл
screen.cursor := crDefault;

Автор: BaD_SeCt0R 10.8.2007, 12:31
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
begin
  Screen.Cursor:=crHourGlass;
  for i:=0 to $FFFF do
   begin
    //...
    Label1.Caption:=inttostr(i);
    Application.ProcessMessages;
   end;
  Screen.Cursor:=crDefault;
end;


У меня все работает  smile 

Автор: Bose 10.8.2007, 13:27
Цитата(Chyslyvchyk @  10.8.2007,  09:31 Найти цитируемый пост)
Чтобы их было видно в процессе выполнения цикла, используется application.processmessages.

Вместо application.processmessages можно вызывать Label.repaint


Автор: Chyslyvchyk 13.8.2007, 02:20
Код

screen.cursor := crHourGlass;
  while not table.eof do
    begin
    Label.Caption:=table.fieldbyname('fieldname').asstring;
    Application.ProcessMessages;
    table.Next;
    end;
screen.cursor := crDefault;

Работать-то работает, а вот курсор отображает, как crDefault. :( 

А вот Label.repaint - это "то, что доктор прописал"! Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)