私はおそらく何かが不足していることは知っていますが、何が分かりませんか。 2つのフォーム(Form1、Form2)でテストアプリケーションを作成しました。私はボタンをクリックすると、それが意味するようFireMonkey FM2で複数のウィンドウを使用する方法
Application.CreateForm(TForm2,Form2);
Form2.Show;
、第二の形式が示されているが、私はForm1のIをクリックした場合: 私はOnClickイベントハンドラに次のコードをForm1にボタンを追加しましたTopMost
がtrueに設定されていても、前面に表示することはできません。
私には何が欠けていますか? どうすれば修正できますか? 私はいくつかのサブフォームとメインフォームを常に表示する必要があります。
form1はform2の所有者のようです。そして、私はWindowsの意味での所有者を意味します。 VCLでは、この用語はポップアップ・ペアレントです。 –
FMXで作成されたすべてのフォームは、 'TPlatformWin.CreateWindow'に' ParentWnd'が設定されています。作成された最初のフォームはひどい考えのように思える 'GetDesktopWindow'を使います。その後のフォームでは、最初のフォームのウィンドウハンドルが使用されます。つまり、後続のフォームは常に作成された最初のフォームによって所有されます。それは吸う。私はFMXを使用しないので、それを修正する方法は考えられません。私は決してしなくていいと願っています。 –
XE2では正常に動作します。私がXE3でコンパイルすると、最初のフォームをWinDowseを使って上に持ってきます(タブの変更 - >上に留まる)。しかし、私は魔法をするためにどのAPIとパラメータを使用しているのかわかりません... –