Ich weiß, dass ich wahrscheinlich etwas vermisse, aber ich kann nicht verstehen, was. Ich habe gerade eine Testanwendung mit 2 Formularen (Form1, Form2) erstellt. Ich habe eine Schaltfläche zu Form1 mit dem folgenden Code in dem OnClick-Ereignishandler hinzugefügt:Wie man mehrere Fenster in FireMonkey FM2 verwendet
Application.CreateForm(TForm2,Form2);
Form2.Show;
Wenn ich auf die Schaltfläche klicken, wird eine zweite Form gezeigt wird, wie es zu verstehen ist, aber wenn ich auf Form1 I kann es nicht nach vorne bringen, auch wenn es die Eigenschaft TopMost
auf True gesetzt hat.
Was fehlt mir? Wie kann ich es beheben? Ich muss einige Unterformulare und ein Hauptformular anzeigen, die immer oben sein müssen.
Sieht aus wie form1 ist der Besitzer von form2. Und ich meine Besitzer im Windows-Sinne. In der VCL würde der Begriff Popup-Eltern sein. –
Ja, alle von FMX erstellten Formulare haben 'ParentWnd' in' TPlatformWin.CreateWindow' gesetzt. Die erste erstellte Form verwendet 'GetDesktopWindow', was eine schreckliche Idee zu sein scheint. Und nachfolgende Formulare verwenden das Fensterhandle des ersten Formulars. Das bedeutet, dass nachfolgende Formulare immer dem ersten erstellten Formular gehören. Was ist scheiße. Keine Ahnung, wie ich es beheben kann, weil ich FMX nicht verwende. Ich hoffe, ich muss es nie tun. –
Auf XE2 funktioniert es wie erwartet. Wenn ich mit XE3 kompiliere, kann ich das erste Formular mit WinDowse (Registerkarte Ändern -> Bleib oben) nach oben bringen. Aber ich weiß nicht, welche API und Parameter sie verwenden, um die Magie zu machen ... –