我在这里得到了一些代码,它创建了一个很好的标签,但是当我释放标签时,STILL会在表单上显示。即使它已被删除,不再“分配”。
以下是代码。 它创建标签很好,但不会删除。 没有例外,分配说错了。
我也可以用TRectangle重现这个。
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Lab : TLabel;
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
begin
Lab := TLabel.Create(Self);
Lab.Parent := Form1;
Lab.Text := 'Hello!';
Lab.Position.X := 30;
Lab.Position.Y := 40;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
FreeAndNil(Lab);
ShowMessage(BoolToStr(Assigned(Lab), true));
end;
答案 0 :(得分:4)
我想
Lab.Parent:= NIL;
FreeAndNil(Lab);
可以提供帮助。
答案 1 :(得分:0)
FWIW,使用Delphi XE(不是XE2),您的代码按预期工作(经过一些小的修改,例如用Left等替换Position.X)。
要检查/尝试的一些事项: