我自己导出生成一个Panel,Panel上放了个Label“Destroy Me”, Label的的Parent是
导出生成的Panel, 然后在 Dialog上Create了这个Panel. 我设想在Label的点击事件上写入销毁整个Panel的代码,问题总是出错,我想原因是不能自己销毁自己, 于是我想通过向Panel的父窗口(一
个Dialog)发一个自定义事件,让Dialog来销毁这个Panel,但是我用Delphi不过2周,
所以请问大家我如何实现这个功能,能附一点代码最好,感激不尽(PS:我看一些资料,于是这样实现了一下
在Dialog放了一个button, 在Label点击事件上实现了MyDialog.button.perform(WM_LButtonDown,
0, 0)
然后在Dialog上的Button的Click事件上写销毁Panel的free,为什么还是出现内存
问题呢?
)
,试试下面的代码unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Button2: TButton;
procedure Button2Click(Sender: TObject);
private
procedure destroyme(Sender:TObject);
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button2Click(Sender: TObject);
var
pp:TPanel;
bb:TButton;
begin
pp:=TPanel.Create(nil);
pp.Parent :=self;
bb:=TButton.Create(nil);
bb.Parent :=pp;
bb.OnClick :=destroyme;
bb.Caption :='destroyme';
end;procedure TForm1.destroyme(Sender: TObject);
begin
TWinControl(Sender).Parent.Free;
end;end.