2024/06/03 電子書籍「電子書籍出版・技術文書作成を劇的に加速!秀丸エディタ + Markdown + Pandocの驚異」を出版

C++Builderで、最初のイベント処理を追加する

C++Builder

C++Builderでプロジェクトを新規に作成したら、最初に登録すべき4個のイベント処理について説明します。

最初に追加する3つのイベント

最初に以下の3つのイベントを追加しておきましょう。

イベント説明
OnShowOnShow イベントは,フォームが表示されたとき(フォームの Visible プロパティが true に設定されたとき)に発生します。
OnCloseQueryOnCloseQuery イベントハンドラを使用すると,フォームをすぐに閉じるかどうかをユーザーに確認できます。
このイベントは、ウィンドウが閉じられる前に発生します。
OnCloseOnClose イベントハンドラを記述すると,アプリケーションが閉じられる際に特別な処理が実行されるようにすることができます。
OnDestroyフォームが破棄される直前に発生します。このイベントを使用して、終了時の処理を実行できます。

プロジェクトへのイベントの追加

メインフォームを選択後、オブジェクトインスペクタのイベントを表示します。

ここで、追加したいイベントの右側で、ダブルクリックすると、ソースファイルにイベント関数が追加されます。何も記述せず、このまま保存するとイベント関数が消えてしまいますので、通常ダミーでコメント(//)を追記しておきます。

実際に追加される関数名は、以下となります。

void __fastcall FormShow(TObject *Sender);
void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall FormDestroy(TObject *Sender);

イベントへの処理の追加

C++の場合の一般的な処理

C++の場合は、一般的にコンストラクタ、デストラクタで、初期化、その後処理をを行います。

処理関数処理内容
コンストラクタ一般的に、変数やオビジェクト、クラスの初期化を行います。
デストラクタコンストラクタで、確保したリソースやメモリの解放やファイルのクローズ等を行います。

C++Builderの場合

C++Builderでは、FormやDialogの場合はデスクトラクタは通常ありません。ですので、リソースの開放等は、FormCloseQuery関数、FormClose関数、FormDestroy関数で行います。

FormClose関数は、関数の終了時に呼ばれないことがある為、終了時に必ず処理したい内容は、FormCloseQuery関数に記述してください。INIファイルへの設定の保存などは、FormCloseQuery関数に記述(呼び出)してください。

処理関数処理内容
コンストラクタ一般的に、変数やオビジェクト、クラスの初期化を行います。
FormShow表示後でも良い場合は、ここで変数やオビジェクトの初期化を行う事も出来ます。
デストラクタコンストラクタで、確保したリソースやメモリの解放やファイルのクローズ等を行います。
FormCloseQueryコンストラクタで、確保したリソースやメモリの解放やファイルのクローズ等を行います。
FormCloseコンストラクタで、確保したリソースやメモリの解放やファイルのクローズ等を行います。
OnDestroyコンストラクタで、確保したリソースやメモリの解放やファイルのクローズ等を行います。
タイトルとURLをコピーしました