Versions Compared

Key

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

.NET Framework コンポーネントを使用するには、まずコンピュータで Microsoft .NET Framework がオンになっていることを確認します。 Windows Vista/Windows 2008 以降の Microsoft Windows のバージョンには .NET Framework が含まれていますが、フレームワークのすべてのバージョンがデフォルトで有効になっているわけではありません。 .NET Framework を有効にする方法の詳細については、Microsoft Windows のドキュメントを参照してください。

次のステップは、Visual LANSA で .NET コンポーネントを作成することです。 .NET コンポーネントを作成すると、他の Visual LANSA コンポーネントと同じように使用できます。 コンポーネントのインスタンスを作成し、そのプロパティ、メソッド、イベントを使用できます。 一部のコンポーネントは非常にシンプルで、使用するためにほとんどプログラミングが必要ありませんが、他のコンポーネントは複雑な機能を提供し、ネイティブの Visual LANSA コントロールを使用するよりも多くのコーディングが必要になる場合があります。


Also see

.NET Frameworkコンポーネントの入手

.NET Frameworkコンポーネントのリポジトリへの登録

.NETコンポーネントの使い方

[ Image Removed |../../index.htm#lansa/l4wdev07_0370.htm]
現在地:

...

Wiki Markup  .NETコンポーネントを一度作成すると、他のVisual LANSAコンポーネントと同じように使用できます。コンポーネントのインスタンスを作成でき、そのプロパティ、メソッド、およびイベントを使用できます。コンポーネントの中には、非常に簡単で、それらの使用にプログラミングをほとんど必要としないものもあれば、複雑な機能を提供するため、標準のVisual LANSAのコントロールを使用する場合よりもはるかに多くのコーディングを必要とするものもあります。 コンポーネントのインスタンスの定義 DEFINE_COMコマンドを使用します。クラスにコンストラクタがないか、コンストラクタがあってもパラメータがない場合、インスタンスを動的または静的のいずれかとして定義できます。そうでない場合、インスタンスは動的として設定しなければなりません。 Define_Com Class(#DOTNET1.TestClasses.MyClass) Name(#MyClass) Reference(*DYNAMIC) クラスがコントロールの場合、コントロールをフォームにペアレント化し、フォームに表示されるようにします。その後、\[デザイン\] ビューでコントロールのサイズを変更して移動できます。 Define_Com Class(#DOTNET1.DotNetControls.WebBrowserX) Name(#Browser) Displayposition(4) Parent(#COM_OWNER) Tabposition(4) 動的インスタンスのインスタンス化 コンポーネントのインスタンスを動的として定義した場合、*NewまたはSET_REFコマンドを使用して、インスタンスをインスタンス化する必要があります。いずれのコマンドでも、開発者がコンストラクタを指定できます。 静的メソッドを持つクラスを定義する方法 クラスで静的メソッドを使用するには、コンポーネント・インスタンスを定義する必要があります。インスタンスは静的または動的として定義できます。一度定義すると、クラスの静的メソッドはいつでも呼び出せます。動的コンポーネント・インスタンスが定義されている場合、静的メソッドは、インスタンスをインスタンス化せずに呼び出すことができます。これにより、静的クラスを使用できるだけではなく、privateまたはprotectedコンストラクタを使用してクラスをインスタンス化できるようにします(クラスに、自分自身をインスタンス化する静的メソッドがあることが前提です)。 *NEW クラスにコンストラクタがないか、コンストラクタがあってもパラメータがない場合、コンストラクタを指定しないか、パラメータのないコンストラクタを指定できます。それ以外の場合、パラメータはメソッド呼び出しと同じように渡す必要があります。 Variable <= *New --- Fully qualified class name ------------------ > >----------------------------------------------------------------- >   |                                                             |   -- .Constructor Name ------------------------------------------                         |                                      |                         -- ( ----------------------------- ) -–                               |                         |                                ------- Parameter -------                                  |                   |                                   ---------<---------   SET_REF 詳細については、『LANSAテクニカル リファレンスガイド』の「[<span style="color: #0000ee"><span style="text-decoration: underline; ">SET_REF</span></span>|../../../lansa015/Content/lansa/set_ref.htm]」を参照してください。 例 C#    public ConstructorTests() \{…\}    public ConstructorTests( int aNumber ) \{…\}    public ConstructorTests( int aNumber, ref DateTime aDateTime, String aString ) \{…\}   RDML    Define_Com Class(#DOTNET1.TestClasses.ConstructorTests) Name(#LCom01) Reference(*DYNAMIC)      Define Field(#LNum01) Type(*INT) Length(4)    Define Field(#LStr01) Type(*CHAR) Length(50)    Define Field(#LDTime01) Type(*DATETIME) Length(26)      #LCom01 <= *New #DOTNET1.TestClasses.ConstructorTests    Set_Ref Com(#LCom01) To(*CREATE_AS #DOTNET1.TestClasses.ConstructorTests)      #LCom01 <= *New #DOTNET1.TestClasses.ConstructorTests.ConstructorTests()    Set_Ref Com(#LCom01) To(*CREATE_AS #DOTNET1.TestClasses.ConstructorTests.ConstructorTests)      #LCom01 <= *New #DOTNET1.TestClasses.ConstructorTests.ConstructorTests#2( #LNum01 #LDTime01 #LStr01 )    Set_Ref Com(#LCom01) To(*CREATE_AS #DOTNET1. TestClasses.ConstructorTests.ConstructorTests#2) Anumber(#LNum0501) Adatetime(#LDTi0501) Astring(#LStr0501)   プロパティと変数の使い方 構文 RDML Variable ..NET Property Name ----------------------------------------------- >                                     |                                           |                                      -- \[ --------------------------------- \] -–                                            |                             |                                             ----------- Index -----------                                               |                       |                                                -----------<-----------   RDML Variable ..NET Variable Name   例 C#    public int Counter    \{       get \{ return mCount; \}       set \{ mCount = value; \}    \}   RDML    Define_Com Class(#DOTNET1.TestClasses.MyClass) Name(#NumericClass)      #NumericClass.Counter := 120      #STD_INT := #NumericClass.Counter      Begin_Loop Using(#STD_INT) To(#NumericClass.Counter) Step(2)    …    End_Loop   メソッドの呼び出し 構文 RDML Variable .Method Name ----------------------------------------------- >                              |                                           |                               -- ( --------------------------------- ) -–                                     |                             |                                      -------- Parameter ----------                                        |                       |                                         -----------<----------- 例 C#    public void       IncrementDateByDays(          ref DateTime                           dateTime,          int                                    dayAdjustment )    \{       dateTime = dateTime.AddDays( dayAdjustment );    \}   RDML    Define_Com Class(#DOTNET1.TestClasses.MyClass) Name(#LClass01)    Define Field(#LDat01) Type(*DATETIME)    Define Field(#LDat02) Type(*DATETIME)      #LDat01 := '1954-04-25 10:04:00.000000'    #LDat02 := '1954-05-05 10:04:00.000000'      #LClass01.IncrementDateByDays( #LDat01 10 )      If ((#LDat01 = #LDat02)) …    Endif     C#    public String        DoubleIntegerReturnString(          int                                    number,          out int                                result )    \{       result = number * 2;       return String.Format( "Double \{0\} is \{1\}", number, result );    \}   RDML    Define_Com Class(#DOTNET1.TestClasses.MyClass) Name(#LClass01)    Define Field(#LNum01) Type(*INT) Length(4)    Define Field(#LNum02) Type(*INT) Length(4)    Define Field(#LStr01) Type(*CHAR) Length(80)      #LNum01 := 411    #LStr01 := #LClass4101.DoubleIntegerReturnString( #LNum01 #LNum02 )    If (#LNum02 = (#LNum01 * 2))    …    Endif     イベント処理 イベント処理関数は、EVTROUTINEコマンドを使用して定義します。このコマンドの詳細については、『LANSA テクニカル リファレンスガイド』の「[<span style="color: #0000ee"><span style="text-decoration: underline; ">EVTROUTINE</span></span>|../../../lansa015/Content/lansa/evtroutine.htm]」を参照してください。コマンドの基本的な構文は以下のようになります。 EVTROUTINE --- HANDLING ( Variable Name .Event Name )------------ > >----------------------------------------------------------------- >                  |                                              |                   ---- Parameter Name( Variable Name ) ---- ) -–                    |                                     |                     --------------------<---------------- 例 C#    public class EventArgs1    \{       private String         mName;         public EventArgs1() \{   \}         public String Name       \{          get \{ return mName; \}          set \{ mName = value; \}       \}    \}      Public class EventTests    \{       public event MyEventDelegate MyEvent;       public delegate void MyEventDelegate( String str, EventArgs1 eventArgs );    \}   RDML    Define_Com Class(#DOTNET1.TestClasses.EventTests) Name(#EventTest)      Evtroutine Handling(#EventTest.MyEvent) Str(#s1) EventArgs(#c1)       #STD_TEXT := #s1       #STD_NAME := #c1.Name    Endroutine [ !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! |../../index.htm#lansa/l4wdev07_0370.htm]