クラスのデモ(その1)
大昔、Visual Basicマガジンという雑誌がありまして、創刊号から愛読していまして、パソコン通信上での友人が「VBマガジンに掲載されれば、献本システムにより、ただで雑誌がもらえるよ。」と唆され、VBマガジンに掲載されるようなサンプルプログラムを、というヨコシマな目的のために作成された、Visual Basic 6.0のプログラムです。
OCXで実現されていたコモンダイアログは、結構ファイルサイズが大きく、回線が細かったパソコン通信時代には、ソフトウェアの配布でネックになりがちでした。配布する側も、ダウンロードする側もね。
Windows APIをVisual Basicから直接呼ぶことができるため、理屈の上ではOCXの代わりにVBのコーディングだけでコモンダイアログは呼べます。
しかし、思い立ってもなかなか自分で実装するには面倒なのか、当時はまだ誰もこういった便利ユーティリティークラスは公開されていませんでした。
当時のソフトウェア添付のドキュメント
CLSDEMO1.LZH クラスのデモ(その1)
===========================================================================
【ソ フ ト名】 クラスのデモ(その1)
【登 録 名】 CLSDEMO1.LZH
【バイト 数】 Byte
【検索 キー】 1:$WIN32 2:#UTY 3:へろぱ 4:NIIYAMA
【著作権 者】 新山(へろぱ) SGV00153
【対応 機種】 Windows9x/Me/NT4.0/2000 later
【動作 確認】 自作AT互換機(Win 2000 SP3他)
【開発 言語】 Visual Basic 6.0J(Pro)
【掲 載 日】 2003/04/13
【作成 方法】 LHA にて解凍を行う。
【ソフトウェア種別】 フリーソース
【転載 条件】 転載を希望される方は、事前に私宛にメールをください。
===========================================================================
【ソフト紹介】
VB4からの新機能の一つにクラスという機能があります。この機能は本来
OLEサーバーなどを作る時に利用したりするものだと思いますが、簡単に再
利用できるモジュールとしての利用価値も結構あると思います。
コモンダイアログのクラス
「ファイルを開く」「ファイルの保存」「フォントの選択」「色の選択」
がVB5のコモンダイアログOCXとほぼ互換のプロパティ・メソッドで
使えます。再配布などでのディスク容量の問題が一挙に解決すると思いま
す。
タブストリップのクラス
コモンコントロールのタブストリップコントロールを直接APIで実現する
クラスです。
プログレスバーのクラス
コモンコントロールのプログレスバーコントロールと同様の外見をピクチ
ャーボックスコントロールで実現するクラスです。
今後、ソース付きの私のプログラム内でタイムスタンプの新しい同名のファイル
があれば、それは更新された新しいモジュールです。参考までに。(^_^;)
コードについて、バグやもっといい方法があると思ったら指摘してもらえると
勉強になるのですが...。
感想、要望、バグ情報等ございましたら、メールをください。
関係無いですが、http://plaza5.mbn.or.jp/~heropa/ もよろしく。(^_^;)
【履歴】
1997/03/21 最初に公開されたバージョン
1998/05/10 コモンコントロールのクラスを修正。VB5専用コードに変更。
1998/06/19 コモンコントロールのクラスのバグ修正。
1998/09/24 色の選択ダイアログのコードを修正。
1999/02/26 タブストリップのクラスをAPIで実装しなおした。
2000/02/09 タブストリップで、コンパイルオプションDebugMode = -1の時は
サブクラス化しないようにした。これで開発時に大分楽になるは
ず。
2003/04/13 cdlOFNNoReadOnlyReturnをFlagsプロパティにセットすると落ち
る原因を教えていただいたので修正した。木村さんありがとうご
ざいます。
===========================================================================
ダウンロードファイル名を『CLSDEMO1.LZH』としてください。
あ、ホームページのURLとか、既に存在していません。
そんなわけで、ソースをtwinBASICで読み込んでみました。22年前のプログラムソースが手元にあったもので。(^^ゞ
普通にエラーもなくコンパイルできてます。冒頭のウィンドウは、twinBASICでコンパイルしたものです。
動作確認をざっくりしましたが、WinHelpの呼び出し以外はちゃんと動作します。(WinHelpは、さすがにWindows 11では...。)
プログラムの性質上、Windows APIをバリバリ呼んでいますが、twinBASICでちゃんと解釈されているようです。
素晴らしい。
まぁ、64ビットコンパイルするためには、ポインタのところとかが今のままでは駄目だろうけど。
これなら、VB De FilMtnでもコンパイルできるのか?
なんか、怖くてできない。 (エラーがバリバリ出て、コンパイルできないと悲しいじゃん?)
