戻る

第4章 グラフィックス


 DrDialogのグラフィック機能は、ビットマップの表示とタートル・グラフィックの二つの機能が用意されています。イメージのビット毎の重ね合わせや矩形データの転送といった機能はサポートされていませんが、イメージの表示やグラフの表示等には十分な機能を持っています。

1.ビットマップ表示

 DrDialogでビットマップを表示するには、ビルボード・コントロール/ビットマップボタン・コントロールを使用します。これらのコントロールには、基本的なイメージの表示設定が可能であり、プログラムからイメージを切り替える事も可能です。複数のイメージをプログラムで切り替える事によって簡易アニメーションを作成する事もできます。
 ビットマップの表示には、Textウィンドウ・ファンクションを使用して、以下のように記述します。
rc = Text("Image.BMP")
 ビットマップがBMPファイルでは無く、リソースDLLの場合は、DLL名とその中での番号を以下のように指定します。(Images.DLLの中の1番目のビットマップを表示する場合)
rc = Text("Images:#1")

2.タートル・グラフィックス

 DrDialogで任意のイメージを作成するには、タートル・コントロールを使用します。このコントロールは、タートルと呼ばれるポインターを制御して、指定領域に線を引く事を動作の基本としています。ビットマップ・イメージの作成は出来ませんが、メタファイルの表示や、その上への描画を行う事が出来ます。
 タートル・コントロールで描画を行うには、以下のようなコマンドを使用します。DrDialogのディレクトリには、コマンド文字列のサンプル・ファイル(DRDIALOG.TUR)があります。
コマンド機能
f[n]nで移動量を設定します。デフォルトは100です。(nはパーセンテージです)
z[n]nでデフォルトの単位移動量を設定します。初期値は10です。単位移動量は、コントロールの幅や高さとのパーセンテージで表されます。
Z[n]nでデフォルトの絶対移動量を設定します。初期値は1です。絶対移動量は、ペルで表されます。
u[n]n単位分上方向にペンを移動します。デフォルト値はzで指定された値です。
d[n]n単位分下方向にペンを移動します。デフォルト値はzで指定された値です。
l[n]n単位分左方向にペンを移動します。デフォルト値はzで指定された値です。
r[n]n単位分右方向にペンを移動します。デフォルト値はzで指定された値です。
U[n]n絶対単位分上方向にペンを移動します。デフォルトは、Zで指定した値です。
D[n]n絶対単位分下方向にペンを移動します。デフォルトは、Zで指定した値です。
L[n]n絶対単位分左方向にペンを移動します。デフォルトは、Zで指定した値です。
R[n]n絶対単位分右方向にペンを移動します。デフォルトは、Zで指定した値です。
x[m[,n]]単位座標でx方向にm、同じく単位座標でy方向にnだけペンを移動します。デフォルト値のmは0です。nを指定しなかった場合は、x方向は変化しません。
y[m[,n]]単位座標でy方向にm、同じく単位座標でx方向にnだけペンを移動します。デフォルト値のmは0です。nを指定しなかった場合は、x方向は変化しません。
X[m[,n]]絶対座標でx方向にm、同じく絶対座標でy方向にnだけペンを移動します。デフォルト値のmは0です。nを指定しなかった場合は、y方向は変化しません。
Y[m[,n]]絶対座標でy方向にm、同じく絶対座標でx方向にnだけペンを移動します。デフォルト値のmは0です。nを指定しなかった場合は、x方向は変化しません。
c[n]タートルの描画色をnで設定します。nは0から15の数字で、初期値は7(黒)です。
b[n]タートルの背景色をnで設定します。nは0~15の数字で、初期値は15(グレイ)です。
p[n]タートルの描画パターンをnで設定します。nは0から19の数字で、初期値は0(ソリッド)です。
<ペン・ダウン。描画はペンがダウンしている間だけ行われます。ペンの初期状態はアップです。
>ペン・アップ。ペンがアップしている場合は、描画は行われません。ペンの初期状態はアップです。
h[n]現在の進行方向をn度に設定します。nは0から360の間で、デフォルトは0(上方向)です。
a[n]デフォルトの進行方向の増分をn度に設定します。初期値は、90度です。
t[n]現在の進行方向を反時計回りにn度変更します。デフォルトは、aで指定した値です。
T[n]現在の進行方向を時計回りにn度変更します。デフォルトは、aで指定した値です。
m[n]ペンを現在の進行方向にn単位分移動します。デフォルトは、zで指定した値です。
M[n]ペンを現在の進行方向にn絶対単位分移動します。デフォルトは、Zで指定した値です。
'...'シングル・クォートで囲まれたテキストを現在のペン・ポジションに現在のカラーで表示します。ペンのスタート位置は、表示されるテキストの左下コーナーです。
"..."ダブル・クォートで囲まれたテキストを現在のペン・ポジションに現在のカラーで表示します。ペンのスタート位置は、表示されるテキストの左下コーナーです。
[...]n括弧内のコマンド群をn回実行します。デフォルトのnは1です。
{...}ccという名前に括弧内のコマンド群を定義します。(名前は、一文字でなければなりません)
=ccという名前の事前定義コマンド群を解釈します。(名前は、一文字でなければなりません)
(...)ペンを移動させずに、ペンの動作関係のコマンドを実行します。括弧内のコマンドを全て実行し終えた後、ペンを最終位置に移動します。
|...|指定したメタファイルを表示します。ファイル名を指定しなかった場合は、クリップ・ボードにメタファイルがあると仮定します。

戻る