Текущий архив: 2002.09.26;
Скачать: CL | DM;
ВнизEvent & Procedure Найти похожие ветки
← →
Nico1a (2002-09-12 15:42) [0]Как и где описать процедуру (Прога без формы), чтобы её присвоить событию, а то компилятор ругается :"...untyped procedure with untyped parameters..."
← →
Alx2 (2002-09-12 15:44) [1]Код нужно с тем, что уже есть.
А пока не понятно что ищется.
← →
Виктор Щербаков (2002-09-12 15:48) [2]
> Как и где описать процедуру (Прога без формы), чтобы её
> присвоить событию
Процедура должна быть методом какого-либо объекта.
← →
oss (2002-09-12 15:53) [3]а можешь ее вызвать в событие
← →
Mike Kouzmine (2002-09-12 16:18) [4]procedure (......) of object;
← →
NailS (2002-09-13 10:07) [5]
> Процедура должна быть методом какого-либо объекта.
Но можно и обмануть, совсем немножко.
function MakeMethod(DataSelf, Code: Pointer): TMethod;
Begin
Result.Data := DataSelf;
Result.Code := Code;
End;//
procedure MyEvent(Sender: TObject);
begin
ShowMessage("Yes");
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
if Sender is TForm then
(Sender as TForm).OnShow := TNotifyEvent(MakeMethod(nil,@MyEvent));
end;
CopyRight (c) Andrew P.Rybin
← →
Старый Паскалист (2002-09-13 11:11) [6]Обмануть-то не сложно, только для этого надо понимать,
что делаешь:
procedure MyEvent( Self: TObject; Sender: TObject);
begin
ShowMessage("Yes");
end;
PS Поэтому так делать и не рекомендуется: небольшое недопонимание может привести к большим глюкам.
← →
Старый Паскалист (2002-09-13 11:24) [7]Если без извратов, то лучше создать специальный класс
TDummy = class
class procedure MyEventHandler(Sender: TObject);
// классовый метод - для того, чтобы не создавать экземпляр.
// класовые методы совместимы с обычными,
// только им в качестве Self передаётся TClass (что естественно)
end;
Something.OnShow := TDummy.MyEventHandler;
← →
NailS (2002-09-13 12:52) [8]
> Старый Паскалист
Спасибо, не знал.
Страницы: 1 вся ветка
Текущий архив: 2002.09.26;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.006 c