HelpHandler インターフェース (PRIM_APP.IHelpHandler)

Helpハンドラのインターフェース

祖先 - なし

詳細

iHelpHandler インターフェイスは、デフォルトのLANSA F1ランタイムヘルプメカニズムをオーバーライドするように実装されています。 

F1を押すと、 ProcessHelpRequest メソッドが実行されます。

ProcessFocusRequest は現在実装されておらず効果はありません。

この例は、ヘルプインタフェースを使用した簡単なフォームを示しています。F1キーを押すと、単純なルーチンが開始されます。このルーチンでは、 Requestor オブジェクト、この場合は ComponentTag を使用し、値を検査します。どれも見つからなければ、値が見つかるか、またはデフォルト値が最終的に使用されるまで、要求を親オブジェクトにルーティングします。

フォーム上のフィールドのすべては、 ComponentTagの指定された値を持っています。しかし、2つのボタンにはありません。親が評価される際にボタン上でF1を押すことで、タグを解決します。

この単純な技法は、基本クラスまたは共有アプリケーションスコープオブジェクトでコーディングすることができ、非常に簡単なコンテキストヘルプメカニズムを提供します。 

     Function Options(*DIRECT)
Begin_Com Role(*EXTENDS #PRIM_FORM *implements #Prim_App.iHelpHandler) Theme(#SYS_THEME<2015Blue>) Clientwidth(551) Clientheight(301) Left(165) Top(204) Width(567) Componenttag('EmployeeEditor')

Define_Com Class(#EMPNO.Visual) Name(#EMPNO) Componentversion(1) Displayposition(1) Height(21) Left(8) Parent(#COM_OWNER) Tabposition(1) Top(8) Usepicklist(False) Width(251) Componenttag('EmployeeNumber')
Define_Com Class(#SURNAME.Visual) Name(#SURNAME) Displayposition(2) Left(8) Parent(#COM_OWNER) Tabposition(2) Top(32) Componenttag('Surname')
Define_Com Class(#GIVENAME.Visual) Name(#GIVENAME) Displayposition(3) Left(8) Parent(#COM_OWNER) Tabposition(3) Top(56) Componenttag('GivenName')
Define_Com Class(#ADDRESS1.Visual) Name(#ADDRESS1) Displayposition(4) Left(8) Parent(#COM_OWNER) Tabposition(4) Top(80) Componenttag('Address')
Define_Com Class(#ADDRESS2.Visual) Name(#ADDRESS2) Componentversion(1) Displayposition(5) Height(21) Left(8) Parent(#COM_OWNER) Tabposition(5) Top(104) Usepicklist(False) Width(537) Componenttag('Address')
Define_Com Class(#ADDRESS3.Visual) Name(#ADDRESS3) Componentversion(1) Displayposition(6) Height(21) Left(8) Parent(#COM_OWNER) Tabposition(6) Top(128) Usepicklist(False) Width(537) Componenttag('Address')
Define_Com Class(#PRIM_PHBN) Name(#Cancel) Caption('Cancel') Displayposition(7) Left(464) Parent(#COM_OWNER) Tabposition(7) Top(264)
Define_Com Class(#PRIM_PHBN) Name(#OK) Caption('OK') Displayposition(8) Left(376) Parent(#COM_OWNER) Tabposition(8) Top(264)

Mthroutine Name(ProcessHelpRequest) Options(*Redefine)

#Handled := True

#Com_owner.Caption := #Com_owner.FindTag( (#Requestor *As #Prim_ctrl) )

Endroutine

Mthroutine Name(FindTag)
Define_Map For(*Input) Class(#Prim_Ctrl) Name(#Requestor) Pass(*By_Reference)
Define_Map For(*Result) Class(#Prim_alph) Name(#Result)

If (#Requestor *Is *null)

#Result := "NoHelpTag"

Else

If (#Requestor.ComponentTag <> "")

#Result := #Requestor.ComponentTag

Else

#Result := #Com_owner.FindTag( #Requestor.Parent )

Endif

Endif

Endroutine

End_Com

メソッド

名前

記述

ProcessFocusControl

フォーカス変更時に実行

Handled, Requestor, Tag

ProcessHelpRequest

デスクトップのアプリケーションでF1押下時に実行

Handled, Requestor, Tag


参照

すべてのコンポーネント クラス
テクニカルリファレンス

  • No labels