DrDialogのグラフィック機能は、ビットマップの表示とタートル・グラフィックの二つの機能が用意されています。イメージのビット毎の重ね合わせや矩形データの転送といった機能はサポートされていませんが、イメージの表示やグラフの表示等には十分な機能を持っています。
DrDialogでビットマップを表示するには、ビルボード・コントロール/ビットマップボタン・コントロールを使用します。これらのコントロールには、基本的なイメージの表示設定が可能であり、プログラムからイメージを切り替える事も可能です。複数のイメージをプログラムで切り替える事によって簡易アニメーションを作成する事もできます。
ビットマップの表示には、Textウィンドウ・ファンクションを使用して、以下のように記述します。rc = Text("Image.BMP")ビットマップがBMPファイルでは無く、リソースDLLの場合は、DLL名とその中での番号を以下のように指定します。(Images.DLLの中の1番目のビットマップを表示する場合)rc = Text("Images:#1")
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です。 {...}c cという名前に括弧内のコマンド群を定義します。(名前は、一文字でなければなりません) =c cという名前の事前定義コマンド群を解釈します。(名前は、一文字でなければなりません) (...) ペンを移動させずに、ペンの動作関係のコマンドを実行します。括弧内のコマンドを全て実行し終えた後、ペンを最終位置に移動します。 |...| 指定したメタファイルを表示します。ファイル名を指定しなかった場合は、クリップ・ボードにメタファイルがあると仮定します。