![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Назначит событию процедуру [WinXP]
Vovan#1 © (2006-08-13 13:22:00)Хочу назначить потомку 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)
Vovan#1 (2006-08-13 17:06:00) [1]Та статья всё разъянила. Спасибо за внимание.
begin...end (2006-08-13 14:22:00) [2]> DiamondShark © (13.08.06 14:02) [5]
А чего в них шаманского? Тоже вполне легальный способ, по-моему.
Впрочем, что выбрать -- решать, конечно, автору.
Ketmar (2006-08-13 14:15:00) [3]> [4] begin...end © (13.08.06 13:54)
пардон, не заметил. извиняюсь.
DiamondShark (2006-08-13 14:02:00) [4]А зачем тогда шаманские пляски с "конструированием значения", если есть легальный способ?
Выгод-то никаких...
begin...end (2006-08-13 13:54:00) [5]> Ketmar © (13.08.06 13:40) [3]
Разве в [2] я не упомянул об этом способе?
Ketmar (2006-08-13 13:40:00) [6]> [2] begin...end © (13.08.06 13:34)
> сконструировать" значение типа TNotifyEvent самостоятельно
а не проще объявить один класс с классовой процедурой? %-)
begin...end (2006-08-13 13:34:00) [7]Не знаю, что они там попридумывали в Delphi 2005, но такой код не будет компилироваться и в более ранних версиях.
Свойству OnTerminate следует присвоить значение типа TNotifyEvent, т.е. метод, а не процедуру. Это может быть классовый метод или метод объекта (например, того же потомка TThread).
Есть и другой способ -- "сконструировать" значение типа TNotifyEvent самостоятельно, из указателя на экземпляр класса (если он будет использоваться внутри обработчика OnTerminate) и адреса кода процедуры (только её в этом случае надо будет описать по-другому).
DprYg (2006-08-13 13:32:00) [8]http://www.rsdn.ru/article/delphi/Handlers.xml