![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
динамическое создание кнопки
Тимофейка © (2006-05-17 22:33:00)вот кнопку создаю
var
ok:TButton;
begin
ok := TButton.Create(nil);
ok.Parent := form1;
ok.Top := 40;
ok.Left := 0;
ok.Caption:= 'OK';
подскажите как создать для этой же кнопки событие онклик,например чтоб по нажатию закрывалось form1
Kolan (2006-05-17 23:40:00) [1]Через COM неплохо. Только азбираться надо....
Тимофейка (2006-05-17 22:57:00) [2]
> Джо
яя пытаюсь раобраться работу с плагинами в приложении...мне нужно чтобы при загрузке плагина создавались кнопки,лебелы и .т.д с соответствующими событиями, как лучше это реализовывать, через dll или bpl ?
Gydvin (2006-05-17 22:46:00) [3]Ну конечно же self, незаметил ((((
Джо (2006-05-17 22:44:00) [4]"Создать событие" нельзя. Можно назначить его обработчик. Завести, например, в классе формы, метод с параметрами, которые требуются обработчику и просто присвоить его экземпляру кнопки. Вот так:
TForm1 = class(TForm)
...
private
procedure OnClickEventHandler (Sender: TObject);
...
end;
implementation
procedure TForm1.OnClickEventHandler(Sender: TObject);
begin
Close
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Button: TButton;
begin
Button := TButton.Create(Self);
Button.Parent := Self;
Button.OnClick := OnClickEventHandler;
end;
Также, обрати внимание, что использование переменной form1 — в общем случае — не есть хорошо.
Gydvin (2006-05-17 22:39:00) [5]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure CloseClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
ok:TButton;
begin
ok := TButton.Create(nil);
ok.Parent := form1;
ok.Top := 40;
ok.Left := 0;
ok.Caption:= 'OK';
ok.OnClick:=CloseClick ;
end;
procedure TForm1.CloseClick(Sender: TObject);
begin
close
end;