![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как создать... [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)
Ну и по щелчку юзера.