Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

これらのボタンをフォームに追加し、フォームでコンパイルし、実行します。両方のボタンをクリックします。どちらにも「Hello」というメッセージが表示されます。

Image RemovedImage Added




Image RemovedImage Added





つまり、Button 3で定義されているClickイベントは、定義されているコンポーネント(#Com_Owner)のメソッドを呼び出すので、メッセージ「Bye」を表示する再定義されたメソッドは、Button 4では使用されません。

...

Button 3をコンパイルし、再度実行します。今度はButton 4をクリックすると、再定義されたメソッドが使用され、メッセージ「Bye」が表示されます。

Image RemovedImage Added

#Com_Ancestor

祖先のコンポーネントのメソッドを呼び出すには、汎用の名前#com_ancestorを使用してメソッドの名前を修飾すると参照できます。

例えば、上の例の続きで、以下のように再定義されたButton 4のMethodOneからButton 3のMethodOneメソッドを呼び出せます。

MTHROUTINE name(MethodOne) options(*redefine)
INVOKE method(#com_ancestor.methodone)
USE builtin(MESSAGE_BOX_SHOW) with_args(OK OK INFO '' 'Bye') to_get(#STD_OBJ)
ENDROUTINE

Button 4をコンパイルし、テスト・フォームを実行します。Button 4をクリックすると、最初に祖先からButton 3のMethodOneが呼び出されます。

Image RemovedImage Added





そして[OK]をクリックすると、Message_Box_Show組み込みファンクションによりButton 4で定義されたテキスト「Bye」が表示されます。

Image RemovedImage Added