SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

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 テクニック編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK