请判断下列代码在程序关闭时,正确的对象释放顺序 TMybutton=class(Tbutton) Protected Destru
请判断下列代码在程序关闭时,正确的对象释放顺序
TMybutton=class(Tbutton)
Protected
Destructor Destroy;override;
End;
…………
destructor TMyButton.Destroy;
Begin
inherited;
Application.MessageBox(PChar(Name),’Destroy’,mb_ok);
end;
var AButton,BButton:TMyButton;
procedure TForm1.FormCreate(Sender:TObject);
begin
Abutton:=TmyButton.Create(Nil);
With AButton do
begin
Parent:=form1;
Top:=100;
Left:=100;
Visible:=True;
Name:=’ABtn’;
end;
BButton:=TMyButton.Create(Application);
With BButton do
begin
Parent:=Form1;
Top:=100;
Left:=200;
Visible:=True;
Name:=’BBtn’;
end;
procedure TForm1.FormDestroy(Sender:TObject);
begin
…………
end;
A.BButton.Destroy->Form1.Destroy->AButton.Destroy
B.上述都不对,应该手工调用 Abutton.free,否则会造成AButton没有释放的
错误
C.Form1.Destroy->AButton.Destroy->BButton.Destroy
D.AButton.Destroy->Form1.Destroy->BButton.Destroy
请帮忙给出正确答案和分析,谢谢!