在一单据上动态创建一Button控件,并且要为此Button控件加上OnClick(点击)事件。即达到运行时点击动态创建出来的控件,它要能能够执行一事件。请各高手帮忙解答?谢谢!!
解决方案 »
- 在DBGRID中,怎么在按下左箭头时,把光标自动跳到前一个CELL里
- delphi的一个棘手问题,哪位可以指点一下~~~
- 求DELPHI控件
- 【投诉】倒分贴!!
- 请问你们帮别人做管理系统收费是怎么样的?是按功能收费吗?如一个登陆功能收费多少钱?可以给点例子吗?
- 原来在一台装有rx控件的D6里头编的程序(没有使用RX控件)换到另一台没有rx控件的D6调试,出现‘说控件的文件未找到’?
- DBGrid多重选择问题, 急啊,在线等待
- sos!各位什么好的工具推荐
- 针对这个例子,你能写出最精的代码吗??(欢迎讨论)
- 谁能谈一下TApplication.HandleMessage函数
- 简单问题,揭帖给分50,怎么样
- 已知一个窗体的名,如果去创建这个窗体,注意只知道窗体名是字符类型!
procedure clickkk(Sender: TObject);
procedure TForm1.BitBtn1Click(Sender: TObject);
var
butt: Tbutton;
begin
butt := Tbutton.Create(self);
butt.Parent := form1;
butt.left := 45;
butt.Top := 45;
butt.Caption := 'dfd';
butt.OnClick := clickkk;end;procedure TForm1.clickkk(Sender: TObject);
begin
showmessage('OK');
end;end.
{New一个Application,copy代码覆盖原代码,在对象监视器(Object Inspector)
中通过下拉选择,设置Form1的OnCreate事件为FormCreate,然后直接运行就可看到效果}
interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure MyClick(Sender:TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
a: array[1..100] of TButton;implementation{$R *.dfm}procedure TForm1.MyClick(Sender: TObject);
var
i: integer;
nam: string;
begin
i := StrToInt(Trim(Copy(TButton(Sender).Name, 7, 3)));
TButton(Sender).Visible := not TButton(Sender).Visible;
i := i + 1;
nam := 'Button' + IntToStr(i);
if i <= 100 then
TButton(FindComponent(nam)).Visible := not TButton(FindComponent(nam)).Visible
end;procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
for i := 1 to 100 do
begin
a[i] := TButton.Create(self);
with a[i] do
begin
Top := (i-1) div 10 * 20;
Left := (i-1) mod 10 * 20;
Height := 20;
Width := 20;
Name := 'Button' + IntToStr(i);
Caption := '';
Parent := Form1;
OnClick := MyClick;
end;
end;
Form1.AutoSize := True;
Form1.AutoSize := False;
end;end.
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm2 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
FButton: TButton;
procedure Test(Sender: TObject);
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}procedure TForm2.Test(Sender: TObject);
begin
ShowMessage('Hello!');
end;procedure TForm2.FormCreate(Sender: TObject);
begin
FButton := TButton.Create(nil);
FButton.Parent := Form2;
FButton.OnClick := Test;
end;procedure TForm2.FormDestroy(Sender: TObject);
begin
FButton.Free;
end;end.
即我会加上FButton.Free,释放实例。
各大虾又是怎样理解的呢?