2

現在、 DELPHI 2010でデータベース インターフェイスを設計しており、いくつかのフォーム インターフェイスを設計しており、すべてが 1 つの Delphi プロジェクト構造にカプセル化されています。最初に特定のインターフェイス フォームの設計を開始した結果、.exe ファイルを実行すると無関係なフォームが最初に表示されますが、プログラムがロードされたときにメニュー フォームが表示されるようにしたいと考えています。私の質問は次のとおりです。

  1. コンパイル済みプロジェクトの .exe が実行されたときにメニュー フォームを最初に開くにはどうすればよいですか?
  2. このメニューのナビゲーション ボタンをプログラムして新しいフォームを開くには、どの関数を使用する必要がありますか?
  3. プログラム全体を閉じずにフォームを個別に閉じるには、各フォームの「終了」ボタンでどの機能を使用すればよいですか?

Pascal について十分な知識がありますが、このプラットフォームでオブジェクト指向ソリューションをプログラミングするのは初めてです。

4

1 に答える 1

5

フォームを自動作成するか、オンデマンドで作成するかを決定する必要があります。また、どのフォームがメインになるかを決定する必要があります。

コーナーの質問は、同じクラスの複数のフォームを開くことができるかどうかです。たとえば、「ファイル ビューアー」フォームを作成した場合、異なるファイルに対して複数のフォームを開くことが理にかなっている場合があります。

自動作成フォームの場合:

1.1プロジェクトソース(.dprファイル、プロジェクト/ソースの表示メニュー)を開くか、フォームセクションでプロジェクトオプションを開きます。MenuForm を作成リストの 1 番目 (一番上) に設定します。
1.2 他のすべてのフォームに.visibleプロパティがあることを確認するfalse

2: プログラムのロジックに応じて、Form1.Show または Form1.ShowModal を使用する必要があります。

3: Self.Close または Self.Hide または Self.Visible := false。ベター 1: http://docwiki.embarcadero.com/Libraries/XE2/en/Vcl.Forms.TCustomForm.Close
これらのフォームの OnClose イベントを使用する場合 - 閉じるためのデフォルトの caHide アクションを変更していないことを確認してください

手動で存続期間を制御するフォームの場合:

1: プロジェクト ソース (.dpr ファイル、[プロジェクト]/[ソースの表示] メニュー) を開くか、[フォーム] セクションで [プロジェクト] オプションを開きます。MenuForm を作成した唯一のものに設定します。

2.1. some-temporary-variable := TFormClass.Create(Application);
2.2. some-temporary-variable次に、開くファイル名やデータ ソースなどのいくつかのプロパティを微調整します。
2.3. 次に、some-temporary-variable.Showまたはを行いますsome-temporary-variable.ShowModal
注意: ShowModal を使用すると、アプリケーションがフリーズする可能性がありますTFormClass.Create(SomeAnotherForm)

3: Self.Release http://docwiki.embarcadero.com/Libraries/XE2/en/Vcl.Forms.TCustomForm.Release
または Self.Close をcaFree実行し、OnClose イベントでアクションを指定します - http://docwiki.embarcadero.com/Libraries /XE2/en/Vcl.Forms.TCustomForm.OnClose

于 2013-01-10T11:01:53.770 に答える