【问题标题】:How detects parent form for Control?如何检测控件的父窗体?
【发布时间】:2013-12-22 14:57:22
【问题描述】:

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

最简单的方法是什么?

【问题讨论】:

    标签: delphi firemonkey-fm3


    【解决方案1】:

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

    根是接口类型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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      相关资源
      最近更新 更多