イベント ハンドラの戻り値型は void(C++)

提供: RAD Studio
移動先: 案内検索

ハンドラ型の定義 への移動


イベント ハンドラの戻り値の型は void でなければなりません。イベント ハンドラの戻り値型が void であっても、引数を参照で渡すことにより、ユーザー コードで情報を取得できます。その場合は、ユーザーのコードで値を変更しなくてもよいように、必ず引数に有効な値を割り当ててから、ハンドラを呼び出します。

イベント ハンドラに引数を参照で渡す例としては、TKeyPressEvent 型のキー押下イベントがあります。TKeyPressEvent には 2 つの引数が定義されています。1 つは、どのオブジェクトでイベントが発生したかを示すもので、もう 1 つは、どのキーが押されたかを示すものです。

typedef void __fastcall (__closure *TKeyPressEvent)(TObject *Sender, Char &Key);

通常、Key パラメータには、ユーザーに押されたキーの文字が格納されます。ただし、場合によっては、コンポーネントのユーザーがその文字を変更することもあります。たとえば、編集コントロールですべての文字を強制的に大文字にするような場合です。その場合、ユーザーは、キー入力のハンドラを次のように定義できます。

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, Char &Key)
{
  Key = UpCase(Key);
}

また、参照渡しの引数を使用して、ユーザーがデフォルトの処理をオーバーライドできるようにすることも可能です。

関連項目