[Delphi] フォームの OnCreate イベントや OnShow イベント中にクローズさせる

フォームの OnCretae イベントや OnShow イベントでは、Close メソッドをコールしても、クローズさせることはできません。
原因は、OnCreate イベントの段階では、まだメッセージループが開始されていないからということのようです。
これらのイベント中で、クローズさせたい場合には、下記のように記述します。

PostMessage(Handle, WM_CLOSE, 0, 0);

こうすることで現在実行中のイベント終了後、クローズしてくれるようになります。
ですから厳密にはイベント中ではありません。でもやりたいことはだいたいできると思います。

ボーランドの公式回答では、raise で処理するとのことです。

□CodeGearのホームページ
http://www.codegear.com/

□CodeGearのサポートページ
http://support.codegear.com/

□CodeGearの旧Delphi FAQサイト
http://support.codegear.com/article/37355

□該当の公式回答 - Form の OnCreate の処理中に中断
http://support.codegear.com/article/37355#37355_tocentry18

コメント (0件)


くろねこ研究所
https://www.blackcat.xyz/article.php/ProgramingFAQ_del0038