Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

динамическое создание кнопки   Найти похожие ветки 

 
Тимофейка   (2006-05-17 22:33) [0]

вот кнопку создаю
var
ok:TButton;
begin
ok := TButton.Create(nil);
ok.Parent := form1;
ok.Top := 40;
ok.Left := 0;
ok.Caption:= "OK";

подскажите как создать для этой же кнопки событие онклик,например чтоб по нажатию закрывалось form1


 
Gydvin ©   (2006-05-17 22:39) [1]

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;


 
Джо ©   (2006-05-17 22:44) [2]

"Создать событие" нельзя. Можно назначить его обработчик. Завести, например, в классе формы, метод с параметрами, которые требуются обработчику и просто присвоить его экземпляру кнопки. Вот так:

 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:46) [3]

Ну конечно же self, незаметил  ((((


 
Тимофейка   (2006-05-17 22:57) [4]


> Джо

яя пытаюсь раобраться работу с плагинами в приложении...мне нужно чтобы при загрузке плагина создавались кнопки,лебелы и .т.д с соответствующими событиями, как лучше это реализовывать, через dll или bpl ?


 
Kolan ©   (2006-05-17 23:40) [5]

Через COM неплохо. Только азбираться надо....



Страницы: 1 вся ветка

Текущий архив: 2006.06.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.051 c
2-1148011660
Rubey
2006-05-19 08:07
2006.06.04
Ввод через DBGRID


2-1147320548
Ezorcist
2006-05-11 08:09
2006.06.04
Событи на мыше


5-1132723716
ККВ
2005-11-23 08:28
2006.06.04
Не запускается программа в режиме отладки


2-1147756978
manevil
2006-05-16 09:22
2006.06.04
Еще один вопрос про OpenDialog


15-1147192434
ArtemESC
2006-05-09 20:33
2006.06.04
Что нехватает современным 3D мирам ...