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

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

Как создать... [D6]


Fog ©   (2002-11-09 15:05:00) 

... процедуру типа TNotifyEvent? Ясно что ето procedure(Sender:TObject) of object; но если создать процедуру procedure Proc(Sender:TObject); и попробовать Button1.OnClick := Proc(Sender); то получится:
[Error] uMain.pas(30): Incompatible types: "TNotifyEvent" and "procedure, untyped pointer or untyped parameter"


Fantasist   (2002-11-10 01:45:00) [1]


procedure Proc(Self:pointer;Sender:TObject);
begin
TButton(Sender).Caption:="ee";
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
@Button1.OnClick:=@Proc;
end;


или более культурно:


procedure Proc(Sender:TObject);
begin
TButton(Sender).Caption:="ee";
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
TMethod(Button1.OnClick).Code:=@Proc;
TMethod(Button1.OnClick).Data:=nil;
end;


Alex44   (2002-11-09 19:35:00) [2]

procedure =\= procedure of object !
(procedure zanimaet 1 pointer, a procedure of object---2).
TNotifyEvent = procedure ... of object;
T.e., objazatel"no

type
MyFunnyObject = class(...)
procedure MyClick(Sender: TObject);
end;


Anatoly Podgoretsky   (2002-11-09 15:52:00) [3]

Да если MyProc в том же классе


Fog   (2002-11-09 15:48:00) [4]

а ежль надо для только что созданного объекта например:

with TButton.Create(Self) do
begin
Tra-la-la := bla-bla-bla;
OnClick := MyProc;
end;


Геннадий   (2002-11-09 15:22:00) [5]

Не ты один с этим столкнулся. Просто в описании формы добавь procedure MyName(Sender : TObject);
А в OnCreate (или где тебе надо) - Button1.OnClick:= MyName;

Программно вызывается так: Button1.Click или MyName(Self/NIL)
Ну и по щелчку юзера.


Наверх

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