掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
OnResizeイベントの発生について (ID:11706)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>Form1にボタンを追加して、Form2(MyForm)がインスタンス化されているかどうか、チェックしてみてはどうでしょう? を行うと、「インスタンス化されていません」と表示されます。 ただ、MyForm2はインスタンスへの参照を保持しているだけなので、 インスタンスが有効かどうかは無関係だと思います。 また、Assinged関数は、その変数がnilかどうかだけを調べるようなので、 procedure TForm1.Button2Click(Sender: TObject); begin // MyForm2.Free; <-削除 MyForm2 := nil; end; として、Button2をクリックした後、Button3をクリックしても、 「インスタンス化されていません」と表示されます。 (MyForm2がnilなので) しかし、当然Form2のインスタンスは有効です。 ただし、MyForm2はnilなので2度とForm1からMyForm2には アクセスできませんが。 Button2クリックを以下のように変更して実行した後、 procedure TForm1.Button2Click(Sender: TObject); begin MyForm2.Free; // MyForm2 := nil; コメントアウト end; 新たな下記のButton4のクリックを実行すると例外が発生するので、 MyForm2のインスタンスが無効であるのは間違いないようです。 procedure TForm1.Button4Click(Sender: TObject); begin MyForm2.Show; end; だから、OnDestroyイベントを実行した後からインスタンスを破棄する処理の間に、 割り込み?のような形で、OnResizeイベントが実行されてしまっているんですよね。 (詳しい動きがわからず、現象から推測しているだけなんですが)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.