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日ですが、ちゃんと動くものを仕上げたいですね。