<p>フォームの OnCretae イベントや OnShow イベントでは、Close メソッドをコールしても、クローズさせることはできません。<br />
原因は、OnCreate イベントの段階では、まだメッセージループが開始されていないからということのようです。<br />
これらのイベント中で、クローズさせたい場合には、下記のように記述します。</p>
<pre class="brush: delphi;" title="フォームの OnCreate イベントや OnShow イベント中にクローズさせる">
PostMessage(Handle, WM_CLOSE, 0, 0);</pre>
<p>こうすることで現在実行中のイベント終了後、クローズしてくれるようになります。<br />
ですから厳密にはイベント中ではありません。でもやりたいことはだいたいできると思います。</p>
<p><b>ボーランドの公式回答では、raise で処理するとのことです。</b></p>
<p>□CodeGearのホームページ<br />
<a href="http://www.codegear.com/">http://www.codegear.com/</a></p>
<p>□CodeGearのサポートページ<br />
<a href="http://support.codegear.com/">http://support.codegear.com/</a></p>
<p>□CodeGearの旧Delphi FAQサイト<br />
http://support.codegear.com/article/37355</p>
<p>□該当の公式回答 - Form の OnCreate の処理中に中断<br />
http://support.codegear.com/article/37355#37355_tocentry18</p>