СообЧа > База Знаний > Программирование > Delphi

Вопрос

Как использовать в качестве обработчика сообщения обычную процедуру, а не метод объекта?

Ответ

У этой процедуры должен быть еще один дополнительный параметр.
В метод класса кpоме паpаметpов, обьявленных в заголовке, пеpедается еще паpаметp Self

procedure MyRegularProc(ASelf, Sender: TObject);
begin
 ShowMessage(ASelf.ClassName + ' ' + Sender.ClassName);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
    amethod: TMethod;
begin
    amethod.Code := @MyRegularProc;
    amethod.Data := Self;
    Button1.OnClick := TNotifyEvent(amethod);
end;

Leonid Troyanovsky



Copyright © 2000-2004 Сообщество Чайников
Контактная информация