ちなみに VB5.0 CCE SP2 は 98/11/19 現在以下の URL からダウンロードできる。約 7MB の圧縮パッケージ EXE で、通常の Win アプリと同様にサクサクインストールできた。
http://www.microsoft.com/japan/developer/vbasic/controls/controls.htm
試しに RCX に接続されたモータを Button のクリックにより ON/OFF する Control を作成してみる。VB は大昔に体験版を触っただけなので、ほとんど初めてだ。最初は簡単な所から行ってみよう。
まずメニューのファイルから新しいプロジェクトを選択し ActiveX Control の Project を作成する。画面には UserControl1 という名の、フォームのようなものが作成される。すかさずオブジェクト名を設定しよう。とにかく新しいものを配置したらオブジェクト名を決定する方がよさそうだ。とりあえず MotorCtrl と設定する。
次にメニューのプロジェクトからコンポーネントを選択し LEGO PBrickControl,OLE Control module チェックボックスをチェックする。すると左端のツールボックスに LEGO のロゴが現れる。これが Spirit.ocx だ。後は他の Button 等と同じように MotorCtrl に貼り付ければよい。
試しに Spirit 1つと CommandButton を2つ配置する。ツールボックスで配置したい Control をクリックして選択し、MotorCtrl 上で範囲を指定すればそこに Spirit や CommandButton が配置される。すかさずオブジェクト名を PBrickCtrl, StartButton, StopButton に設定する。StartButton, StopButton はプロパティの Caption を Start, Stop にする。
StartButton の上でダブルクリックし、Button をクリックした時のコードを入力する。RCX のモータを ON するメソッドは On であり、以下のように記述してやる。
PBlickCtrl.On "012"
ピリオドを入力すると、PBlickCtrlの(すなわち Spirit の)メソッドが一覧でポップアップされるので、On メソッドを選択する。その後スペースを入力すると、引数に関するバルーンヘルプが現れる。とりあえず"012"
として3個のモータ全てを ON させる。同様にして StopButton クリック時にも Off メソッドを用いて3個のモータを OFF するように記述する。
残るコードとして UserControl の Initialize メソッドと Terminate メソッドに、PBrickCtrl の InitComm メソッドと CloseComm メソッドをそれぞれ呼び出すように記述する。最初に InitComm メソッドを呼んでおかないと On メソッドを使った時に怒られる。
これで Control 動作に最低限必要な作業は終わった。メニューのファイルから Project1.ocx の作成を選択し、適当な名前を付けてセーブする。
最後に作成した Control を動作させる環境を構築しよう。VB5.0 CCE と共にインストールされたアプリケーションセットアップウィザードを起動する。作成した OCX の Project ファイルを指定し、オプションは「インターネットダウンロードセットアップを作成」を選択する。ランタイムコンポーネントは「Microsoft Web サイトからダウンロード」を選択しても、今回の例では MS サイトに接続する事は無かった。
依存情報の確認では、Spirit.ocx のチェックボックスのチェックを外さないと、作成される CAB ファイルの中に Spirit.ocx が含まれてしまう。ウィザードが終了すると HTML ファイルと CAB ファイルが作成される。OCX ファイルは圧縮されて CAB ファイルの中に含まれている。この2つのファイルを移動し HTML ファイルを IE にドロップすると、作成した Control が動作する。
Spirit.ocx のメソッドが全然分かってないので簡単な操作しか出来なかったが、とりあえず製品版 VB が無くても Spirit.ocx を使って RCX を操作できる事が分かった。応答も赤外線を挟んでいる割にはまあまあだと感じた。Spirit.ocx に関しては日本語では c.mos さんのページが参考になる。LEGO 社からは以下の URL で Spirit.ocx のリファレンスをダウンロードできる。
今回作成した Control と起動用 HTML ファイル(LZH 圧縮 5KB)
今回作成した Control の VB5.0 CCE Project ファイル(LZH 圧縮 6KB)