2014-02-08 1 views
1

Я застрял. Как получить активную форму в приложении Android FireMonkey? У меня есть только TComponent, размещенный на этой форме, но похоже, что он не содержит ссылки на корневой элемент.Получить активную форму в приложении Android FireMonkey

Я динамически создаю элемент управления (TToolBar) и хочу добавить его в верхнюю часть активной формы, когда компонент находится на нем. Проблема заключается в следующем:

ToolBar := TToolBar.Create(Application); 
    ToolBar.Align := TAlignLayout.alTop; 
    ToolBar.Parent := ?; // I don't know what parent to specify for this control 

Может быть, я должен создать новую форму и разместить ее на ней?

ответ

1
  1. Правильное решение:

    ToolBar.Parent := Application.MainForm;
    (docs)

  2. Это будет работать, но вы не сможете добавить детско к ToolBar:

    if Application.HasParent then
    ToolBar.Parent := Application.GetParentComponent as TFmxObject;
    (docs)

  3. Это внутренняя функция также должна сделать трюк в случае, если вы знаете FormFamily:

    function Application.GetDeviceForm(const FormFamily: string): TCommonCustomForm; overload;