Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.02;
Скачать: 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 вся ветка

Текущий архив: 2008.03.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
2-1202148905
аа2
2008-02-04 21:15
2008.03.02
TDateTime


15-1201312850
Черный Шаман
2008-01-26 05:00
2008.03.02
Я правильно понимаю эту строчку?


2-1202485682
Ksanf
2008-02-08 18:48
2008.03.02
Обход графа


2-1201689760
Ell
2008-01-30 13:42
2008.03.02
Нужна помощь


15-1201424991
Kostafey
2008-01-27 12:09
2008.03.02
С днем рождения ! 27 января