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 テクニック編資料