プロが教える店舗&オフィスのセキュリティ対策術

MessegeDialogのように、そのフォームを閉じないと、他のフォームをアクティブにできなくするにはどうすればよいのでしょうか?

A 回答 (2件)

No.1の方が既に回答されていますが、ShowModalを使います。


ヘルプのキーワードにShowModalと入れてください。

最初のうちは、必ずしもフォームの自動作成からはずす必要はありません。なれるまでは、自動作成されたフォームをメインフォームから呼び出すだけにしておいたほうが簡単です。
    • good
    • 0
この回答へのお礼

ただ単に、
form2.ShowModal;
と、するだけで良いのですね。
ありがとうございます。

お礼日時:2006/03/21 23:31

こんにちは。



普通に ShowModal ではダメでしょうか?
ShowModal したいフォームを自動生成から外しておくといいでしょうね。
メニューから[プロジェクト(P)|オプション(O)...]を実行してプロジェクトオプションのダイアログを表示し、[フォーム]タブの中の[自動生成の対象(A)]から、メインフォーム以外(もしくは ShowModal するフォーム)を[選択可能なフォーム(F)]に移しておきましょう。

たとえば、Form1 をメインフォーム,Form2 をサブフォームとし、上のように Form2 を自動生成から外した場合、Form1 から Form2 を ShowModal 等で使用するには、Form1 の中で Form2 を能動的に生成しないといけません。

Delphi(Pascal) のソース記述はあまり自信がないのですが、↓みたいになるでしょう。

var
 MyForm2: TForm2;
begin
 MyForm2:= TForm2.Create(AnOwner);
 try
  if Myform2.ShowModal = mrOk then
  begin
   // なにがしかの処理
  end;
 finally
  MyForm2.Free;
 end;
    • good
    • 0
この回答へのお礼

form2.ShowModal;
で良い事、理解しました。
ありがとうございます。

お礼日時:2006/03/21 23:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!