掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的フレームの再作成でエラー (ID:22588)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 動くようになった私は、まささんが言っている事が正しいと思います。 あのですね、あるときはうまくいき、あるときはうまくいかないプログラムは よいプログラムではありません。TForm で自分のイベントハンドラから Free すると、必ずエラーになるとはかぎりません。エラーになるときがあるのです。 ですから、Free ではなく Release を使うべきなんです。 PostMessage() と SendMessage() は、Windows のようなイベント駆動型の プログラムを理解するのにはその区別は必須です。イベントハンドラのような 関数や手続きを呼び出すと、処理が終わったら呼び出された連鎖の順番に遡って 結局メッセージループにたどり着きます。Free を使った場合エラーになるのは この呼び出しの連鎖を遡る事が出来なくなるからです。でも、それができる場合も あって、Free でメモリがクリアされるタイミングが微妙です。Release を使うと この危険性がなくなります。なぜなら、メッセージループに戻ってから、Free が 実行されることが保証されるからです。 逆に言うと、Free されたインスタンスを遡る必要がないハンドラでは、Free や FreeAndNil を使っても一向に差し支えありません。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.