ハンドラ型の定義

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

独自のイベントの定義 への移動


イベントの発生時期について決定したら、次にそのイベントの処理方法を定義します。つまり、イベント ハンドラの型を決定します。多くの場合、開発者が定義したイベントのハンドラは、簡単な通知を行うものかイベント独自の型を持つものです。また、ハンドラから情報を取得することもできます。

単純な通知

通知イベントとは、特定のイベントが発生したことを告げるだけのイベントで、発生した時期や場所についての具体的な情報は伴いません。通知イベントには TNotifyEvent 型を使用します。TNotifyEvent は、唯一のパラメータとしてイベントの発生元があります。このため、通知イベントのハンドラがそのイベントから得られる情報は、発生したイベントの種類と、そのイベントが発生したコンポーネントだけです。たとえば、クリック イベントは通知イベントで、クリック イベントのハンドラで利用できる情報は、クリックが発生したということと、どのコンポーネントがクリックされたかということだけです。

通知は一方通行です。たとえば、フィードバックを提供したり、通知イベントのそれ以上の処理を防止させるようなメカニズムは備えていません。

イベント独自のハンドラ

場合によっては、どのイベントがどのコンポーネントに対して発生したかという情報では十分ではないことがあります。たとえば、キーが押されたことを示すイベントの場合、ユーザーが押したキーの種類をハンドラで認識する必要があることもあります。このような場合には、パラメータとして必要な追加情報を含めるハンドラが必要です。

メッセージによってイベントが発生した場合には、多くの場合、メッセージのパラメータがそのままイベントのハンドラに渡されます。

ハンドラからの情報を返す方法

すべてのイベント ハンドラは手続きなので、ハンドラから情報を返す場合は var パラメータを使用します。ユーザーのコンポーネントは、ユーザーのハンドラを実行した後、返された情報によって、イベントを処理する方法やイベントを処理するかどうかを決定できます。

たとえば、すべてのキーイベント(OnKeyDownOnKeyUpOnKeyPress)は、Key パラメータにキーを示す値を参照渡しします。イベント ハンドラで Key を変更すると、アプリケーションはその変更された値を受け取ります。このような方法で、たとえば入力された文字を大文字に変換できます。

関連トピック

関連項目