【发布时间】:2013-12-22 14:57:22
【问题描述】:
需要在 Delphi (FireMonkey 3) 中检测此表单上的任何控件的父表单。
最简单的方法是什么?
【问题讨论】:
标签: delphi firemonkey-fm3
需要在 Delphi (FireMonkey 3) 中检测此表单上的任何控件的父表单。
最简单的方法是什么?
【问题讨论】:
标签: delphi firemonkey-fm3
控件的Root 属性指向最上面的Parent。
根是接口类型IRoot。在其上调用 GetObject 会生成表单。表单的类型可以是TCustomForm、TCustomForm3D、TForm、TForm3D,所有这些类型都以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;
【讨论】: