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

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

Динамический TTimer - как узнать Tag таймера [D7, XP]


HF-Trade ©   (2010-04-30 16:52:00) 

Добрый день.

Создаю таймер(ы)

....
For I:=0 to ListBox1.Items.Count-1 do
 Begin
  Read(FMText,MText);//Это TRecord
  CreateMyTimer(MText.UHandle,StrToInt(MText.Delay));
 end;
CloseFile(FMTExt);
....

Собсно сама процедура создания -

procedure TForm1.CreateMyTimer(MyTag,MyInterval:Integer);
Var
ATimer:TTimer;
begin
 ATimer:=TTimer.Create(Self);
 ATimer.Tag:=MyTag;
 ATimer.OnTimer:=MyTimerEvent;
 ATimer.Interval:=MyInterval;
 ATimer.Enabled:=True;
end;

Удаляю так -

....
  For I:=0 to ListBox1.Items.Count-1 do
   Begin
    Read(FMText,MText);//TRecord
    For N:=0 to Form1.ComponentCount-1 do
     IF Form1.Components[N].Tag=MText.UHandle Then
      Form1.Components[N].Free;
   end;
....

Обработчик таймера -

procedure TForm1.MyTimerEvent(Sender : TObject);
begin
....
Вот тут мне нужно вывести Tag таймера в Memo\Edit
....

Как получить\обратиться в обработчике MyTimerEvent к его Tag?


Германн   (2010-05-02 02:43:00) [1]


> Германн ©   (02.05.10 02:40) [10]
>
>
> > Сергей М. ©   (01.05.10 19:34) [8]

Это, конечно, копейки. Но иногда и копейки имеют вес. :)


Германн   (2010-05-02 02:40:00) [2]


> Сергей М. ©   (01.05.10 19:34) [8]
>
>
> > мне необходимо ..отправлять сообщения, с разными временными
> интервалами
>
>
> Один таймер с периодом срабатывания, кратным всем этим интервалом,
>  и набором соответствующих каждому интервалу счетчиков с
> успехом заменяет дивизию таймеров.

Если "период срабатывания" таймера достаточно мал по сравнению с "периодом срабатывания счётчика". Иначе лучше другой TTimer.


HF-Trade   (2010-05-01 20:38:00) [3]

т.е. счетчики основанные на интервале основного таймера?
ну мб так бы и сделал, но в моем случае - 1-5 таймеров, погоду не делают...


Сергей М.   (2010-05-01 19:34:00) [4]


> мне необходимо ..отправлять сообщения, с разными временными интервалами


Один таймер с периодом срабатывания, кратным всем этим интервалом, и набором соответствующих каждому интервалу счетчиков с успехом заменяет дивизию таймеров.


Leonid Troyanovsky   (2010-05-01 18:00:00) [5]


> HF-Trade ©   (01.05.10 17:33) [6]

> Ну к примеру мне необходимо в разные окна(хэндлы храняться

Хранение хендлов не безопасно.

--
Regards, LVT.


HF-Trade   (2010-05-01 17:33:00) [6]

Ну к примеру мне необходимо в разные окна(хэндлы храняться в ТРекорд) постоянно отправлять сообщения, с разными временными интервалами.


Германн   (2010-05-01 02:38:00) [7]


> А хоть бы и два - все равно одним можно обойтись.

+1
Но не совсем всегда.


Сергей М.   (2010-04-30 23:32:00) [8]


> HF-Trade ©   (30.04.10 17:09) [3]


А хоть бы и два - все равно одним можно обойтись.


HF-Trade   (2010-04-30 17:09:00) [9]


> MBo ©   (30.04.10 17:01) [1]
> если без проверки, тоTTimer(Sender).Tag

Млин) Всеж было так просто)
Спасибо)))


> Сергей М. ©   (30.04.10 17:04) [2]

Ну.... ) Да вообщем то их и немного будет)


Сергей М.   (2010-04-30 17:04:00) [10]

И куды ж ты столько таймеров насандалил ?
В подавляющем большинстве случаев достаточно всего одного-единственного)


MBo   (2010-04-30 17:01:00) [11]

если без проверки, то
TTimer(Sender).Tag


Наверх

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