如何检测控件的父表单?

时间:2013-12-05 15:26:48

标签: delphi firemonkey-fm3

需要在Delphi中检测父表单(FireMonkey 3)以获取此表单上的任何控件。

最简单的方法是什么?

1 个答案:

答案 0 :(得分:7)

控件的Root属性指向最上面的Parent。

Root的接口类型为IRoot。在其上调用GetObject会生成表单。表单可以是TCustomFormTCustomForm3DTFormTForm3D类型,所有这些都有TCommonCustomForm作为祖先:

function GetParentForm(Control: TFmxObject): TCommonCustomForm;
begin
  if (Control.Root <> nil) and
      (Control.Root.GetObject is TCommonCustomForm) then
    Result := TCommonCustomForm(Control.Root.GetObject)
  else
    Result := nil;
end;