最終更新日 :
VB Tips

N88-BASICをVBに移植するために
N88プログラムをVBに移植したい...。そんな人にN88とVBの違いについてお教えします。

まずこれは言うまでもないことですが、VB(Windows)はイベントドブリン型のプログラミングスタイルを取ります。 この違いが、N88プログラムの移植を複雑なものにしています。また、CONSOLESCREENのようなステートメント(コマンド)はVBには備わっていません。 わかりやすく、だいたいのところを表にしてみますと、

N88VB
CONSOLE, SCREEN, COLORなどの画面初期化ステートメント
PAINTステートメント(API)
I/O制御ステートメント
INKEY$ステートメント×
ヘルプ(Windows固有の機能)×
複雑な図形処理(パス、リージョン)×(API)
DATAステートメント×


CONSOLE, SCREEN, COLORなどの画面初期化ステートメント
CONSOLEステートメントは、画面がテキスト表示部分とグラフィック表示部分(2層)に分かれているCUI (GUIに対してCharacter User Interface)に特有のシステムです(ただし、Win32 Consoleプログラムはテキストのみ使用可能らしい)。ですから、テキスト表示もグラフィックとして扱うVBでは別の使用法を考えなければなりません。
SCREENステートメントの代わりになるのは、Scaleメソッドです。しかし、これは画面の座標系を設定する時だけ可能です。スクリーンバッファなどはピクチャーボックスなどを利用します。
色の情報は、Windowsでは256色以下の環境の場合、パレットというそれぞれのウィンドウに結び付けられたデバイスコンテキスト(N88のスクリーンと考えてください)に含まれる色情報に左右されています。 このパレットの情報は、VB単独では変更することはできません。ですから、COLOR@ステートメントなどは別の方法を考える必要があります。また、VBでは色番号は存在せず(QBColor関数では16個の番号を指定します)RGB関数で赤、緑、青のそれぞれの要素の度合いを設定します。
詳細は次回に続けていきます→

I/O制御ステートメント
I/O制御に関しては、VB単独ではどうにもなりません。市販のOCXやDLLを使用する方法や、無理してDDKを入手してVxD, WxDを作成し、それを使用するためのDLL、OCXを自分で作成するしか方法がありません。(C言語やアセンブラの知識はもちろん、 ドライバ設計の知識も必要になります。)

Copyright (C) 1999 Satoshi Tadaフィードバックはこちら
Home