![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TTimer без TForm [D4, D5, D6, NT4, Win2k, WinXP]
Пивоман © (2002-04-28 21:16:00)Люди!!!
Помогите: мне нужен таймер, но не нужна форма.
Как мне правильно инициализировать таймер в этом случае?
Anatoly Podgoretsky (2002-04-29 08:27:00) [1]Пивоман (28.04.02 21:37)
Тебе ответил alxx
drpass © (28.04.02 21:39)
Проверь
Dy-Ty (2002-04-29 08:10:00) [2]можно сделать все горадо проще (GetTickCount - это конечно хорошо, но .....)
1.объявляешь процедуру, которая будет срабатывать по таймеру
procedure prPr;
begin
MessageBox(0,"yyy","yyy",MB_OK);
end;
2.объявляешь переменную=идентификатор таймера
var pID : integer;
3.создаешь таймер
pID := SetTimer(0,0,300,@prPr); {300 - интервал}
4.грохаешь таймер
KillTimer(0,pID);
и ВСЁ !!!
drpass (2002-04-28 21:39:00) [3]А что, будет работать? TTimer инкапсулирует стандартную функцию винды SetTimer. Она требует дескриптор окна для привязки таймера. Нет родительского оконного компонента (читай - формы) - нет дескриптора - по идее, нет таймера. Открой второй поток с низким приоритетом, в нем гоняй GetTickCount или что тебе нравится, и на основе этого реализуй таймер
Пивоман (2002-04-28 21:37:00) [4]>Anatoly Podgoretsky ©
угу! ошибку выдает! а что делать, не подскажете?
alxx (2002-04-28 21:35:00) [5]Ну, вообще-то, procedure OnTimer - должен быть методом объекта:
Procedure MyObject.OnTimer(Sender:TObject);
Anatoly Podgoretsky (2002-04-28 21:29:00) [6]И будет ошибка при компиляции, в строке Timer.OnTimer:=OnTimer;
alxx (2002-04-28 21:21:00) [7]procedure OnTimer(Sender: TObject);
Begin
Showmessage("Test");
End;
...
Var Timer:TTimer;
begin
Timer:=TTimer.Create(nil);
Timer.OnTimer:=OnTimer;
Timer.Interval:=100;
Timer.Enabled:=True;
End;