SAK 図書館
VB ビジュアル編 (その九) ユーザコントロール(OCX) 作成、ActiveX ウェブ
■ユーザコントロール ・ユーザコントロール(OCX) の作成は、うまく使うと非常に便利な側面がある。 特にウェブページに貼り付ける ActiveX での使用はおもしろい。 もっとも、どちらかと言えば、イントラネット向けの仕組みではある。 昔、Oracle から受注データの月別集計を ASP で取得して、クライアントの グラフ表示 OCX を作成して描画させたことがある。 ■作成手順 1. ActiveX コントロールプロジェクトで作成する。 2. UserControl に必要な ・プロパティ ・メソッド ・イベント を付加する。 3. コンパイルすると OCX ができる。 これで、標準のコントロールと同様に VB でも扱える。 4. インターネット配布パッケージをディストリビューションウィザードで 作成する。(ウェブで利用する場合) 5. コントロールとして、ウェブページに貼り付ける。 (ウェブで利用する場合) 6. コントロール制御に必要なコードを書く。 ■プロパティ追加作成、公開 ・UserControl モジュールにコードする。 次の例は、data1 と言う名のプロバティを文字列型で作成している。 Private ppdata1 As String Public Property Let data1(ByVal NewValue As String) ppdata1 = NewValue PropertyChanged "data1" End Property Public Property Get data1() As String data1 = ppdata1 End Property ■メソッド追加作成、公開 ・UserControl モジュールにコードする。 次の例は、Testdata1(a) と言う名のメソッドを作成している。 これは、public な function を作成するだけである。 Public Function Testdata1(byval a As String) As Boolean Label1 = a Text1 = a & "||" & a Label1.Refresh Text1.Refresh Testdata1 = true End Function ■イベント追加作成、公開 ・UserControl モジュールにコードする。 次の例は、ctl_Click()、ctl_cmdClick(x, y) と言う名のイベントを作成 している。イベントに対するコードは当然ながら使用する側である。 Public Event Click() Public Event cmdClick(byval x as long, byval y as long) Private Sub UserControl_Click() RaiseEvent Click End Sub Private Sub cmd_Click() Dim a Dim b a = 100 b = 200 RaiseEvent cmdClick(ByVal a, ByVal b) End Sub ■HTML、ASP 等でのスクリプトコード ・次のサンプルは、vbscript でのコントロール制御である。 インターネット配布パッケージ「CODEBASE="ctl.cab#version=1,0,0,0"」の 指定を忘れないようにする。 <SCRIPT LANGUAGE=vbscript> <!-- function setdata(a) ctl.Data1 = a setdata=false end function function getdata() msgbox ctl.Data1 getdata=false end function function testdata(a) if ctl.Testdata1(a) = false then msgbox "err" end if testdata=false end function sub ctl_click msgbox "ctl click" end sub sub ctl_cmdclick(x, y) msgbox "cmd--- click " & x & " - " & y end sub //--> </SCRIPT> <A href="" LANGUAGE=javascript onclick="return setdata('html set data')">html set data</A> <br><br> <A href="" LANGUAGE=javascript onclick="return getdata()">html get data</A> <br><br> <A href="" LANGUAGE=javascript onclick="return testdata('test data')">test data</A> <br><br> <OBJECT id="ctl" classid="clsid:D4B573C9-D808-4C45-A56C-DC103CBBC50B" CODEBASE="ctl.cab#version=1,0,0,0"> </OBJECT> ■VB ビジュアル編資料
■VB 入門編資料
■VB 基礎編資料
■VB テクニック編資料