首页 > 解决方案 > Delphi FMX:DisposeOf 控件在 windows paltform 中有效,但在 Android 中无效。有什么问题?

问题描述

我在运行时创建一个按钮并设置 onclick 事件,如下所示:

BDel := TButton.Create(CR);//CR is Tpanel
BDel.Parent := CR;
BDel.Position.Y := 115;
BDel.Width := 120;
BDel.Height := 32;
BDel.Position.X := 150;
BDel.Text := 'Delete Panel';
BDel.OnClick := BdelClick;

按钮位于面板内。onClick 流程如下:

procedure TForm1.BdelClick(Sender: TObject);
var
  tt: TPanel;
begin
    tt := ((Sender as TButton).Parent as TPanel);
    tt.DisposeOf;
end;

此代码在 Windows 平台和按钮中正常工作,其父级已删除,但在 Android 中无法正常工作。有什么问题?

标签: androiddelphifiremonkey

解决方案


您需要清除对象的所有链接。

(Sender as TButton).Parent:= nil;
tt.DisposeOf;
tt:= nil;

推荐阅读