沢山の図を出力すると, いつ, どのプログラムで描いた, 何の図だったのかわ からなくなってしまう。そんな時, タイトル, その図を出力したプログラム名, 使用したデータ名等々をマージンに書き込ん でおくと, あとの整理が楽になる。
下の例にあるように, 図のいちばん外側にタイトルなどを書くにはDclSetFrameTitleルー チンで書きたい文字列を指定しておく。文字列は, 最大5つまでの番号をつけて指定し(最後の引数), それぞれの書くべき位置を設定する(省略時は1)。 この番号を指定することで, 例えば右下の文字列だけをページごとに変える, というこ とが可能になる。その場合には、DclSetFrameTitleをDclNewFrameを呼んだ あとにも呼ぶことになる。位置の設定は、2番めの引数で 'T' (トップマージン)または 'B'(ボトムマージン)を指定し, 第3番め と第4番めの引数で, マージン内における文字列の位置を -1.0(左寄せまた は下寄せ)から+1.0(右寄せまたは上寄せ)までの実数値で指定する。0.0とす ると中央合わせになる。第5番めの引数では文字の高さを指定する。
DclSetFrameTitleルーチンでタイトル等を書くときには, そのためにあらかじめマージンをとっておく必要がある。この時, 文字列が書かれる のは, フレームの分割の有無に関わらず, 第1レベルのマージンに対してだけである。ここで注意すべきことは, マージンは各レベルごとの最大作画領域に 対する比率で指定されるのに対して,文字の大きさの単位は第1レベルにおける 最大作画領域の長辺を1とするような単位となることである。
なお, DclSetFrameTitleで指定できる文字列には、#DATE, #TIME, #PAGEという予約変数があって, それぞれ, 日付, 時刻, ページ数にあたる 文字列に変換される。
program layout05 use dcl call DclOpenGraphics() call DclSetFrameMargin( 0.1, 0.1, 0.1, 0.1 ) call DclSetFrameTitle( 'figure title', 't', 0., 0., 0.03, 1 ) call DclSetFrameTitle( 'program.name', 'b', -1., 1., 0.02, 2 ) call DclSetFrameTitle( '#date #time', 'b', 0., 0., 0.02, 3 ) call DclSetFrameTitle( 'page:#page', 'b', 1., -1., 0.02, 4 ) call DclNewFrame call DclSetViewPort( 0.1,0.9,0.1,0.9 ) call DclDrawViewPortFrame( 1 ) call DclDrawTextNormalized( 0.5, 0.5, 'figure' ) call DclCloseGraphics end program |
|
DclSetFrameMargin (SLMGN) |
マージンを設定する. |
DclSetFrameTitle (SLSTTL) |
タイトルを設定する. |