Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Event & Procedure [D6, Win95/98, WinME, NT4, Win2k, WinXP]


Nico1a ©   (2002-09-12 15:42:00) 

Как и где описать процедуру (Прога без формы), чтобы её присвоить событию, а то компилятор ругается :"...untyped procedure with untyped parameters..."


NailS   (2002-09-13 12:52:00) [1]


> Старый Паскалист


Спасибо, не знал.


Старый Паскалист   (2002-09-13 11:24:00) [2]

Если без извратов, то лучше создать специальный класс

TDummy = class
class procedure MyEventHandler(Sender: TObject);
// классовый метод - для того, чтобы не создавать экземпляр.
// класовые методы совместимы с обычными,
// только им в качестве Self передаётся TClass (что естественно)
end;

Something.OnShow := TDummy.MyEventHandler;


Старый Паскалист   (2002-09-13 11:11:00) [3]

Обмануть-то не сложно, только для этого надо понимать,
что делаешь:

procedure MyEvent( Self: TObject; Sender: TObject);
begin
ShowMessage("Yes");
end;

PS Поэтому так делать и не рекомендуется: небольшое недопонимание может привести к большим глюкам.


NailS   (2002-09-13 10:07:00) [4]


> Процедура должна быть методом какого-либо объекта.


Но можно и обмануть, совсем немножко.

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


Mike Kouzmine   (2002-09-12 16:18:00) [5]

procedure (......) of object;


oss   (2002-09-12 15:53:00) [6]

а можешь ее вызвать в событие


Виктор Щербаков   (2002-09-12 15:48:00) [7]


> Как и где описать процедуру (Прога без формы), чтобы её
> присвоить событию

Процедура должна быть методом какого-либо объекта.


Alx2   (2002-09-12 15:44:00) [8]

Код нужно с тем, что уже есть.
А пока не понятно что ищется.


Наверх

Титульная страница Поиск, карта сайта Написать письмо