.NETイベントの処理

実行時、.NETオブジェクトはイベントを発行させることができます。Magic xpaのイベントハンドラはこれらのイベントを処理することができます。

大部分の.NETコントロールで利用できる一般的なイベント(例えばOnMouseClick)があり、そのコントロールを指定することができます。Magic xpa内で、.NETイベントを補足し、それに対する処理を定義することができます。これによって、.NETオブジェクトを使用した操作を異なるレベルで実現することができます。

.NETイベントを処理するために、イベント用のロジックユニットを作成し、[イベントタイプ]を「.NET」に設定してください。

.NET項目か.NETクラスを定義することで.NETイベントを選択することができます。

各コントロールに対応したロジックユニットを作成する代わりに、ロジックなしで[.NET]コントロールとMagic xpaのデータ項目を同期させることができます。.NETモデルを作成して、バインディング特性を設定することによって実現できます。

処理するイベントを選択すると、Magic xpaは、オブジェクトがパラメータを受け取るかどうかをチェックします。パラメータを受け取る場合は、自動的にパラメータ項目を作成するかどうかを確認するメッセージを表示します。

有効なイベントの選択リスト内には、Magic xpaの内部イベント(例えばOnDoubleClick)と同じような名前が表示されています。これらは、Magic xpaのイベントと同じように動作します。[.NET]コントロールを使用する場合、.NETイベントを使用してください。Magic xpaのイベントではありません。

伝播とイベント処理規則

Magic xpaでは、イベントを処理し、実行時のタスクツリー内の親タスクにそのイベントを伝播することができます。.NETオブジェクトをフォームのコントロールとしている場合は、同じように動作します。

親タスクでイベントを処理するには、.NETオブジェクトに対応したロジックユニットを定義します。フォーム上のコントロールとして配置されていない.NETオブジェクトを持っている場合、.NETオブジェクトは異なるタスク内の異なるデータ項目を参照することができます。たとえば、タスクのパラメータとしてデータ項目を渡すような場合があります。イベントが.NETオブジェクトによって発行されると、そのオブジェクトを参照しているデータ項目を持つすべてのタスクで処理することができます。これらのイベントには伝播されないため、親タスクでイベントを処理したい場合、親タスクで同じようにそのオブジェクトを参照できるようにする必要があります。

Magic xpaは、2つのタイプの.NETオブジェクトとその応答を区別して処理します。

イベントパラメータ

Magicイベントと同じように.NET イベントにもパラメータが必要なものがあります。

イベントによってはほとんどの場合、.NETイベントに対応するロジックユニットを定義する際、2つのパラメータ(senderとe)がロジックユニットに追加されます。senderは、イベントが発行されたオブジェクトで、eはイベントパラメータです。senderは、「オブジェクト」という.NETタイプが定義されています。これは汎用的なオジェクトであり、簡単に処理することはできません。

DNCast関数を使用してオブジェクトタイプを特定の.NETオブジェクトに変換することができます。例えば、‘System.Windows.Forms.TextBox’はこのオブジェクトを参照し、‘System.Windows.Forms.TextBox’のすべてのプロパティとメソッドにアクセスすることができます。

DNCast関数を使用することで、以下のように.NETオブジェクトタイプを直接指定することができます。

DNCast(A,DotNet.System.Windows.Forms.TextBox).Text

 

注意:

.NETイベントは非同期で処理されます。これは、イベントパラメータを更新しても、イベントを発行したオブジェクトには影響しないことを意味します。