You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

[ |../../index.htm#lansa/l4wdev06_0965.htm]
現在地:

2.16.1.6 継承フォームのカスタマイズ

祖先のフォームに設定された外観と動作は、継承するフォームの基本的なロジックと動作を提供します。
継承するフォームに他のコンポーネント(この例ではフィールドとボタン)を追加し、この基本構造を構築できます。以下のように、祖先のフォームのソースをコピーできます。

フォームをコンパイルし、実行すると、

今度は、フォームに継承された特性(メニューとステータス・バー)とそのコンポーネントとコードの両方が含まれます。
継承するフォームのソースを見ると、祖先で定義されているコンポーネントのDEFINE_COMステートメントが、([アウトライン]タブに表示されているにもかかわらず)含まれていないことがわかります。また、その中で指定されているルーチンも含まれていません。継承するフォームには、コンポーネント定義と固有のコードだけが含まれます。
継承するフォームのソース

                                                                                                      • *                                                   * COMPONENT:STD_FORM                              *                                                   *************************************************** FUNCTION OPTIONS(*DIRECT) BEGIN_COM ROLE(*EXTENDS #EOEXAM01) LEFT(367) TOP(169)   * This form has ancestor EOEXAM01 *  * from which it inherits these visual characteristics: * *    > A menu bar with items Open, Close and Exit on it.  *    > A status bar showing the current user, date and time. * * and from which it inherits these behavioural characterstics:  * *    > The user, date and time on the status bar are initialized *    > The time on the status bar is updated every 5 seconds    *    > The menu bar "Exit" option is handled *    > Closing of the form is handled *    > Closing the form causes a confirmation to be displayed  *       allowing the close to be cancelled.    *    > The "Open" option is handled (unless redefined, see following)    *    -> The "Close" option is handled (unless redefined)   DEFINE_COM CLASS(#EMPNO.Visual) NAME(#EMPNO) DISPLAYPOSITION(2) HEIGHT(19) LEFT(20) PARENT(#COM_OWNER) TABPOSITION(2) TOP(16) WIDTH(209) DEFINE_COM CLASS(#SURNAME.Visual) NAME(#SURNAME) DISPLAYPOSITION(3) HEIGHT(19) LEFT(20) PARENT(#COM_OWNER) TABPOSITION(3) TOP(44) WIDTH(324) DEFINE_COM CLASS(#GIVENAME.Visual) NAME(#GIVENAME) DISPLAYPOSITION(4) HEIGHT(19) LEFT(20) PARENT(#COM_OWNER) TABPOSITION(4) TOP(72) WIDTH(324) DEFINE_COM CLASS(#ADDRESS1.Visual) NAME(#ADDRESS1) DISPLAYPOSITION(5) HEIGHT(19) LEFT(20) PARENT(#COM_OWNER) TABPOSITION(5) TOP(100) WIDTH(363) DEFINE_COM CLASS(#ADDRESS2.Visual) NAME(#ADDRESS2) DISPLAYPOSITION(6) HEIGHT(19) LEFT(20) PARENT(#COM_OWNER) TABPOSITION(6) TOP(129) WIDTH(363) DEFINE_COM CLASS(#PRIM_PHBN) NAME(#SAVE_BUTTON) CAPTION('Save') DISPLAYPOSITION(7) LEFT(392) PARENT(#COM_OWNER) TABPOSITION(7) TOP(8)   * Handle the save button ... EVTROUTINE HANDLING(#Save_Button.Click)  Change (#Empno #Surname #GiveName #Address1 #Address2) *Default Message 'Employee details have been saved' ENDROUTINE   * Redefine the "HandleFileOpen" method so that this method is * used instead of the ancestor's version of it ....     MTHROUTINE NAME(HandleFileOpen) OPTIONS(*REDEFINE) Use Message_Box_Show (ok Ok Info #Com_Self.Name 'Descendant HandleFileOpen method invoked') (#Std_Obj) Endroutine   END_COM
                                                                                                         
                                                                                                        [ |../../index.htm#lansa/l4wdev06_0965.htm]
  • No labels