Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
14-85674
NetBreaker666
2002-09-01 19:38
2002.09.26
Было ли вооще рандеву в Питере ???


3-85363
maxim2
2002-09-05 06:15
2002.09.26
Надо узнать длину поля в таблице, незнаю как?


6-85625
Leny
2002-07-25 07:42
2002.09.26
Запуск программы


1-85473
Cr@sh
2002-09-16 15:33
2002.09.26
Проблемы с Максимайзом.


1-85478
MaximatorVeter
2002-09-13 10:37
2002.09.26
Watch List




   Наверх