Вниз
Скачать: CL | DM;

Как правильно работать с Timer?   Найти похожие ветки 

← →
Volterman   (2007-07-18 10:59) [0]

Хотелось бы увидеть полный пример работы с таймером. В качестве примера приведу свою ситуацию.
Есть главное окно и цикл обработки сообщений.

while (msg.message <> WM_QUIT) do
  begin
     if PeekMessage(msg, 0, 0, 0, PM_REMOVE) then
     begin
       TranslateMessage(msg);
       DispatchMessage(msg);
     end;
     <Команды выполняющиеся постоянно>
  end;

Надо с помощью таймера иммитировать многозадачность приложения (например что-то должно выполнятся каждую 1 сек, а что-то каждые 10 сек).
Чесно говоря я что-то не до конца понимаю как в KOL работать с таймером, обработку события OnTimer.
Инициализирую таймеры таким способом:

Timer1:=NewTimer(1000);
Timer1.Enabled:=True;
Timer2:=NewTimer(10000);
Timer2.Enabled:=True;


← →
Дмитрий К ©   (2007-07-18 11:40) [1]

Не знаю как в вашем случае, а у меня работает:

program tstTimer;

uses
 KOL;

type
 PForm1 = ^TForm1;
 TForm1 = object(TObj)
   form, lb: PControl;
   Timer1, Timer2 : PTimer;
   procedure DoTimer(Sender: PObj);
 end;

var Form1: PForm1;
procedure NewForm1(var Result: PForm1; AParent: PControl);
begin
 New(Result, Create);
 with Result^ do
 begin
   form := NewForm(AParent, "Test Timer");
   Applet := form;
   lb :=NewListBox(form, []).SetAlign(caClient);
   Timer1 := NewTimer(1000);
   Timer1.OnTimer := DoTimer;
   Timer2 := NewTimer(10000);
   Timer2.OnTimer := DoTimer;
   form.Add2AutoFree(Timer1);
   form.Add2AutoFree(Timer2);
 end;
end;

{ TForm1 }

procedure TForm1.DoTimer(Sender: PObj);
begin
 lb.Add(int2str(Integer(Sender)));
end;

begin
 NewForm1(Form1, nil);
 Form1.Timer1.Enabled := True;
 Form1.Timer2.Enabled := True;

 Run(Applet);

end.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
15-1201694364
Tserberus
2008-01-30 14:59
2008.03.02
Ну и что у нас там с DelphiDecompiler


2-1202471615
smartleds
2008-02-08 14:53
2008.03.02
Подскажите как вставить свою фотку в прогу


15-1201467030
Иксик
2008-01-27 23:50
2008.03.02
Очень нужен кто-нибудь с американским IP


2-1202042521
Adios
2008-02-03 15:42
2008.03.02
handle=>tcontrol


2-1202467900
Artem
2008-02-08 13:51
2008.03.02
listbox и image




   Наверх