怎样为自动创建的控件添加事件?(20分)

  • 主题发起人 apple058
  • 开始时间
A

apple058

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
Var
Form:Tform;
B:TButton;
begin
Form:=TForm.Create(Application);
Form.Show;
B:=TButton.Create(Application);
B.Parent:=Form;
end;

各位高手:
我在一按钮事件中添加如此代码,来产生一个窗体和一个按钮
请问:我现在怎样 为 按钮 B 编写事件,来关闭那个自动创建的窗体(Form)?
谢谢!!!
 
procedure TForm1.Button1Click(Sender: TObject);
Var
Form:Tform;
B:TButton;
begin
Form:=TForm.Create(Application);
h:=Form.handle;//h:Thandle;为全局变量
Form.Show;
B:=TButton.Create(Application);
B.Parent:=Form;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Tfrom(h).close;
end;


 
ydejun:
你好,我的 TForm1上只有一个按钮 Button1 更本没有 Button2;
我的 按钮 B 是在 Form 中,你这样行吗?
 
全过程如下:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure customclick(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.customclick(Sender: TObject); //自定义按钮click事件
begin
(Sender as TButton).Parent.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
Var
Form:Tform;
B:TButton;
begin
Form:=TForm.Create(Application);
Form.Show;
B:=TButton.Create(Application);
B.Parent:=Form;
b.OnClick :=customclick; //这就是你需要的
end;

end.
 
etu5:
谢谢你,但是我把你的执行完之后, Form虽然关闭了,但是会弹出一个错误来
不信你试试看?
 
To apple058:
不会吧? 偶这儿没问题阿
要不你把那句改成:((Sender as TButton).Parent As Tform).Close;试试
 
我想不应该释放自己的父窗口,要是释放了,这个Button怎么办。
不过按钮事件的代码就是那样的button.onclick:=过程名
 
etu5:
这样可以,谢谢你。
ydejun:也谢谢你。

希望能做个朋友,谢谢你们!!!你没有没有QQ阿? 我的 QQ:99804335
 
QQ: 41327518

: )
 
顶部