Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание таймера [D5]


_alex_ ©   (2004-06-07 15:17:00) 

Добрый день!
Как мне создать таймер во время работы приложения (без формы).
Я делал так:
 tmrClock := TTimer.Create(nil);
 tmrClock.OnTimer := StartTmrClock;
 tmrCrtGug.Interval:= 1500;
 tmrCrtGug.Enabled := true;
….

procedure StartTmrClock;
begin
 ….
end;
В чем здесь ошибка?


GuAV   (2004-06-07 19:20:00) [1]


> Digitman ©   (07.06.04 16:15) [3]
>
> нет, у него VCL-таймер, у него оkно через AllocateHwnd

точнее это адресовано ancara   (07.06.04 16:08) [2]


GuAV   (2004-06-07 19:06:00) [2]

Digitman ©   (07.06.04 16:15) [3]

нет, у него VCL-таймер, у него оkно через AllocateHwnd

Digitman ©   (07.06.04 15:40) [1]

да или из процедуры сделать метод
typ TMethod=record Code,Data: pointer end;


Digitman   (2004-06-07 16:15:00) [3]


> мне тоже интересно как это сделать, потому что API-функция
> SetTimer первым своим параметром требует Handle.


глазенки-то разуваем, читаючи справку :

hWnd

Identifies the window to be associated with the timer. This window must be owned by the calling thread. If this parameter is NULL, no window is associated with the timer and the nIDEvent parameter is ignored.

черным же по белому написано, что никто от тебя не требует в обязательном порядке первым параметром передавать хэндл - ты вправе передать в этом параметре nil


ancara   (2004-06-07 16:08:00) [4]


> во время работы приложения (без формы).

это как вообще без формы? без единой формочки?
мне тоже интересно как это сделать, потому что API-функция SetTimer первым своим параметром требует Handle.


Digitman   (2004-06-07 15:40:00) [5]

в том что св-во TTimer.OnTimer при назначении требует указания имени МЕТОДА ОБЪЕКТА, а не имени процедуры

иными словами, перед таким назначением  ты обязан описать некий класс, имеющий одним из методов метод с прототипом TNotifyEvent, в ран-тайм создать экз-р такого класса и только после этого производить назначение

читай в справке все касаемое ключевых различий между просто procedure и procedure of object


Наверх

Титульная страница Поиск, карта сайта Написать письмо