Текущий архив: 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.054 c