2012-11-25 11 views
5

私はおそらく何かが不足していることは知っていますが、何が分かりませんか。 2つのフォーム(Form1、Form2)でテストアプリケーションを作成しました。私はボタンをクリックすると、それが意味するようFireMonkey FM2で複数のウィンドウを使用する方法

Application.CreateForm(TForm2,Form2); 
Form2.Show; 

、第二の形式が示されているが、私はForm1のIをクリックした場合: 私はOnClickイベントハンドラに次のコードをForm1にボタンを追加しましたTopMostがtrueに設定されていても、前面に表示することはできません。

私には何が欠けていますか? どうすれば修正できますか? 私はいくつかのサブフォームとメインフォームを常に表示する必要があります。

+0

form1はform2の所有者のようです。そして、私はWindowsの意味での所有者を意味します。 VCLでは、この用語はポップアップ・ペアレントです。 –

+3

FMXで作成されたすべてのフォームは、 'TPlatformWin.CreateWindow'に' ParentWnd'が設定されています。作成された最初のフォームはひどい考えのように思える 'GetDesktopWindow'を使います。その後のフォームでは、最初のフォームのウィンドウハンドルが使用されます。つまり、後続のフォームは常に作成された最初のフォームによって所有されます。それは吸う。私はFMXを使用しないので、それを修正する方法は考えられません。私は決してしなくていいと願っています。 –

+0

XE2では正常に動作します。私がXE3でコンパイルすると、最初のフォームをWinDowseを使って上に持ってきます(タブの変更 - >上に留まる)。しかし、私は魔法をするためにどのAPIとパラメータを使用しているのかわかりません... –

答えて

0

私はあなたを助けることができると思います!

まず、[ファイル]> [新規作成]> [FireMonkeyフォーム]を選択して新しいフォームを作成する必要があります。デルファイは、コード、unit1.pasでForm1の

と同じプロジェクトでunit2.pasとしてこのフォームを保存します:

uses Unit2; 

unit2.pasでの後、あなたはコードを今すぐ

'Unit1は使用しています' を...

'Form2.Show'

さようなら幸運:あなたはみとめWindowsの持っていたし、何も

あなたはでのForm2を表示することができますを行うことができます! 210

関連する問題