-2

モーダル フォーム (B) を呼び出すメイン フォーム (A) があります。(B)別のモーダルフォームを呼び出す(C)と、それらは正常に機能します

新しいモーダルフォーム(D)を追加して(B)から呼び出すと、フォーム(D)を閉じるとフォーム(B)も閉じます!! 閉じるボタンのモーダル結果= mrnoneを確認しましたが

お知らせ下さい

コード:

Form A calling B

B := TB.Create(self);
B.ShowModal;

Form B Calling C
C := TC.Create(self);
C.ShowModal;

Form B Calling D
D := TD.Create(self);
D.ShowModal;

Delphi 2010 を使用しています

より多くのコードが追加されました。これは、問題の原因となっているフォームを解放して発信者を閉じる方法です。

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  action := cafree;
end;

procedure TForm2.FormDestroy(Sender: TObject);
begin
  Form2 := nil;
end;

これは私がモーダルフォームを表示する方法です

procedure Tmymodalfrm.Button1Click(Sender: TObject);
begin
  form2 := Tform2.Create(self);
  form2.ShowModal;
end;

そして、コール スタックでトレースした後、最初にフォーム B を作成したコードを取得しますが、これは非常に正常です。

   B := TB.Create(self);
   B.ShowModal; 

そして私はすぐに夢中になります:)

4

1 に答える 1

0

問題が見つかりました。フォームを呼び出すボタンにはモーダル結果があります = mrclose !!

于 2012-09-24T00:30:40.163 に答える