VBでコントロールを自作する

PC間で通信を行うソフトウエアを作って欲しいとインターンシップ2週目の課題が出された。

これは特に内容は決めてないから好きに決めて欲しいと言われた。

そこでつくることになったのがオセロである。


まぁ無難なネタではあるが。

例によってVisual Basic 6で開発する。

まぁ他の開発環境でもいいのかなとおもって開発機を見てたらVB6とVC++6しかなかった。

当時のVisual C++といえばどこがVisualやねんと言われたものである。

こんなもんで開発してたら終わらんわ。というか使い方知らん。

それならVB6の方がよっぽどましである。


というわけでどうやったら通信できるかなと調べてみた。

例によってWinsockのコントロールがあるらしい。

これをペタッと貼って使えばいい。

それにしてもコントロールを貼らないと使えないってのはどうなのよ。

まぁVBだからそれでもいいのかもしれんが。


ここで実習生2人で役割分担して開発することにして、

僕が通信に関わる部分、もう1人がインターフェースに関わる部分をやることとした。

この2つの部分をつなぐためにはどうしようかと思った。

そこでとった方法がカスタムコントロールを作るという方法。

ここにWinsockのコントロールを貼って、それでイベントやサブルーチンを定義する。

そしてインターフェース側から使ってもらうと。

わざわざコントロールという形にしたのはWinsockもTimerもコントロールの形だったから。


イベントの定義の仕方だが、

Public Event StartGame(ByVal First as Boolean) 

とサブルーチンを定義するように定義するわけだが、使い方は少し違う。

RaiseEvent StartGame(True)

RaiseEventが必要。

使う方は Othello1_StartGame とかいうサブルーチンの内容を書くようにすれば使える。


まぁこのあたりはVB.NETでも似たようなもんです。

そしてC#でもこの要素は取り入れられている。

ただ僕はこれまでEventを自分で定義して使ったことなかったかな。

まぁけどEventってのは便利なもんだと思うので、こういう仕掛けがあるVBはいいのかなと。

ともかくあと3日ですが、ちゃんと動くものを仕上げたいですね。