掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的フレームの再作成でエラー (ID:22537)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Frameさん、こんにちは ご指摘ありがとうございます。フレームとフォームを勘違いしてますた。 ただ少し気になる点もあるので、質問させて下さい。 >モーダルだからとかモードレスだからという違いではないですね。 >フォームのインスタンス中から自分を直接Freeすることは出来ません。 >そのような用途のためにReleaseがあります。 >そのフォームまたはその子フォームのイベントハンドラ以外からではFreeAndNilやFreeをすることは構いません。 Releaseの用途について、このように書かれていますがDelphi7のReleaseのヘルプでは >メモ: フォームを安全に破棄するには,Release メソッドだけを使用してください。Free メソッド(Delphi)または delete キーワード(C++)を使用しないでください。 と書かれていますよね。これだけを読むとフォームを破棄する時には Free(FreeAndNil)を使ってはいけないと読めます。 まちろん、フォームを破棄するのに、Free(FreeAndNil)を使っても 大丈夫な場合もありますが、その基準は ・画面が実行中(内部コードがフォームのオブジェクトを参照する可能性があるもの):Release ・画面が閉じたもの(内部コードがフォームのオブジェクトを参照しないもの):Free(FreeAndNil) (すみません、この辺りの考え方を単純にモーダル・モードレスと書いてしまいました、厳密には違いますが...^^;) だと思います。このようにしないとFree直後に内部コードがフォームオブジェクトを 参照してアクセス違反が起きる可能性があるます。 Frameさんの >そのフォームまたはその子フォームのイベントハンドラ以外からではFreeAndNilやFreeをすることは構いません。 では、モーダレス場合ではアクセス違反が起きませんか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.