Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.03;
Скачать: CL | DM;

Вниз

Назначит событию процедуру   Найти похожие ветки 

 
Vovan#1   (2006-08-13 13:22) [0]

Хочу назначить потомку TThread процедурку для выполнения в OnTerminate:


interface

procedure OnFinished(Sender: TObject);

imlementation

...
 T := TMyThread.Create(AComponent, ....);
 with T do
  begin
   OnTerminate := OnFinished;
  end;
...


И ругается на
E2009 Incompatible types: "method pointer and regular procedure"

Расскажите, что они там ещё понапридумывали (я должен присваивать метод????)?

(Delphi 2005)


 
DprYg ©   (2006-08-13 13:32) [1]

http://www.rsdn.ru/article/delphi/Handlers.xml


 
begin...end ©   (2006-08-13 13:34) [2]

Не знаю, что они там попридумывали в Delphi 2005, но такой код не будет компилироваться и в более ранних версиях.

Свойству OnTerminate следует присвоить значение типа TNotifyEvent, т.е. метод, а не процедуру. Это может быть классовый метод или метод объекта (например, того же потомка TThread).

Есть и другой способ -- "сконструировать" значение типа TNotifyEvent самостоятельно, из указателя на экземпляр класса (если он будет использоваться внутри обработчика OnTerminate) и адреса кода процедуры (только её в этом случае надо будет описать по-другому).


 
Ketmar ©   (2006-08-13 13:40) [3]

> [2] begin...end ©   (13.08.06 13:34)

> сконструировать" значение типа TNotifyEvent самостоятельно

а не проще объявить один класс с классовой процедурой? %-)


 
begin...end ©   (2006-08-13 13:54) [4]

> Ketmar ©   (13.08.06 13:40) [3]

Разве в [2] я не упомянул об этом способе?


 
DiamondShark ©   (2006-08-13 14:02) [5]

А зачем тогда шаманские пляски с "конструированием значения", если есть легальный способ?
Выгод-то никаких...


 
Ketmar ©   (2006-08-13 14:15) [6]

> [4] begin...end ©   (13.08.06 13:54)
пардон, не заметил. извиняюсь.


 
begin...end ©   (2006-08-13 14:22) [7]

> DiamondShark ©   (13.08.06 14:02) [5]

А чего в них шаманского? Тоже вполне легальный способ, по-моему.

Впрочем, что выбрать -- решать, конечно, автору.


 
Vovan#1   (2006-08-13 17:06) [8]

Та статья всё разъянила. Спасибо за внимание.



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

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

Наверх




Память: 0.48 MB
Время: 0.071 c
1-1153490037
BFG9k
2006-07-21 17:53
2006.09.03
Не удается активизировать XMLDocument


4-1147090318
Tarantino
2006-05-08 16:11
2006.09.03
Мерцание при BitBlt экрана с параметром CAPTUREBLT.


15-1154940290
Александр Иванов
2006-08-07 12:44
2006.09.03
Продолжение темы "Без комментариев"


2-1155296090
fast2
2006-08-11 15:34
2006.09.03
Как сделать, чтоб можна было двигать дочерней формой...


1-1152178849
oxffff
2006-07-06 13:40
2006.09.03
Вопрос по custom variant