![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как к Button1 прилепить евент OnClick?
pvasya © (2002-09-06 20:53:00)создал run-time button1.
Как теперь к нему прилепить евент OnClick?
pvasya (2002-09-07 00:14:00) [1]всем спасибо.
если надо, то можете скачать прогу для управления Винампом из любого приложения (использовал хуки) http://www.freesoft.nsk.su/katalog/mm/7016.phtml
Kopetr (2002-09-06 22:55:00) [2]В данном частном случае нужно, чтобы bClick была методом
формы, т.е.
type
Form1 = class(TForm)
...
private
pricedure bClick(sender:TObject);
...
procedure TForm1.bClick;
....
А в общем случае нужно смотреть хелп - щелкнуть на сообщение об
ошибке и нажать F1.
Там же написано - примерно.
pvasya (2002-09-06 22:14:00) [3]создал процедуру:
procedure bClick(sender:TObject);
begin
ShowMessage("Click");
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
a:=TButton.Create(self);
a.Parent:=Form1;
a.OnClick:=bClick;
end;
компилятор ругается:
Incompatible types: "method pointer and regular procedure"
Kopetr (2002-09-06 22:03:00) [4]Или можно вместо Name использовать Tag, тогда
procedure ButtonClick(Sender: TObject):
begin
case TButton(Sender).Tag of
: ;
: ;
else ;
end;
end;
Kopetr (2002-09-06 22:00:00) [5]Всем кнопкам присаивать один OnClick, различать какая кнопка
нажата примерно так:
procedure ButtonClick(Sender: TObject):
begin
if Sender is TButton then
if TButton(Sender).Name = "Button1" then ....
end;
Имя кнопкам при создании присваивать примерно так:
with TButton.Create do
begin
Name := Button1;
OnClick := ButtonClick;
...
pvasya (2002-09-06 21:49:00) [6]а если у меня есть массив кнопок как мне OnClick реализовать?
Kopetr (2002-09-06 21:31:00) [7]procedure Botton1Click(Sender: TObject),
все как обычно.
pvasya (2002-09-06 21:22:00) [8]Это я понял. Формат(Пример) процедуры не можешь привести?
Kopetr (2002-09-06 21:04:00) [9]Button1.OnClick := ... (имя процедуры)