Как обнаруживается родительская форма для контроля?
Необходимо определить родительскую форму в Delphi (FireMonkey 3) для любого элемента управления в этой форме.
Какой самый простой способ для этого?
1 ответ
Решение
Root
Свойство элемента управления указывает на самого верхнего Родителя.
Root имеет интерфейсный тип 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;