• ベストアンサー

右上のXボタンで終了させた子ウィンドウを再表示させるには

単純にVisibleをtrueにすればよいのでしょうか? メモリの解放は行われていない(タスクマネージャで確認)ようですし、 今のところ問題なく動いていますが、不安定にならないか心配になりました。 開発環境はBorlandC++Builderです。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • tea_sheep
  • ベストアンサー率53% (8/15)
回答No.2

ヘルプで TForm の項目で表示されたページの上部にある 「イベント」をクリックすると、イベント一覧が表示されます。 そのなかの OnClose を選択します。 直接、キーワードで「OnClose」を入力した場合には、トピックの TCustomForm (TFormの基底クラス)を選択します。 OnClose は字のごとくウィンドウが閉じられたときのイベントです。 VCLではメインフォームが閉じられるとプログラムが終了するので メインフォームの OnClose で終了処理を記述するようになっています。 メインフォーム以外の子フォームは閉じられてもプログラムが 終了したりしませんが、OnClose イベントは発生します。

archer_archer
質問者

お礼

>ヘルプで TForm の項目で表示されたページの上部にある >「イベント」をクリックすると、イベント一覧が表示されます。 >そのなかの OnClose を選択します。 おかげ様で説明文を読むことができ、 FormCloseイベントのActionがcaHideであることが確認できました。 ご丁寧にありがとうございました。今後ともよろしくお願い致します。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tea_sheep
  • ベストアンサー率53% (8/15)
回答No.1

フォームが閉じられたときの動作については、VCLリファレンスでOnCloseイベントについての記述を見てみましょう。 明示的に解放するように指定しない限り、単に非表示になるだけのようです。 表示は Visible=true でもいいですが、Showメソッドもあります。 モーダル表示にしたければ ShowModal メソッドで。

archer_archer
質問者

補足

>フォームが閉じられたときの動作については、VCLリファレンスでOnCloseイベントについての記述を見てみましょう。 OnCloseイベントって、終了時にさせたいこと(newで作ったオブジェクトのdelete等)を記述する場所ではないでしょうか? 私はC++の素人なので、勘違いしてるかもしれません。orz >明示的に解放するように指定しない限り、単に非表示になるだけのようです。 これ、tea_sheep様がVCLリファレンスで見られたのでしょうか? ヘルプ→C++Builderヘルプ→OnCloseと打つ→トピックを選ぶ、では見えないようですが... どうやったら見えるのでしょうか? >表示は Visible=true でもいいですが、Showメソッドもあります。 Showメソッドを使う方がC++的でしょうね。なんせアセンブラ人間なもので、何でも直接操作してしまいます。(^^; 質問が増えてしまって申し訳ありませんが、よろしくお願い致します。

すると、全ての回答が全文表示されます。

関連するQ&A