DclNewFrameは、新しい描画領域を設定する役割をもっている。このルーチンは図を描く前に必ず呼ばなければならないが、2回目以降は「改ページ」の操作になる。これを繰り返し用いれば何枚も図をかくことができる。
このように描いた図は、ウィンドウ・紙1ページに1つずつ描かれる。複数の図を1ページに沢山並べたい時には、DclDivideFrameを使うと非常に簡単にできる。このルーチンは、DclOpenGraphicsよりも後、DclNewFrameよりも前に呼ぶ。最初の引数で割り付ける方向を指定する。'Y' なら ば横方向に, 'T' ならば縦方向に割り付けられる。次の引数で、縦・横の分割数を指定する。
このように分割されたフレームは、それ以降は1枚のウィンドウ・紙のように扱われる。したがって文字の大きさも分割されたフレームの大きさに応じて小さくなっていることに注意されたい。DclDivideFrameは2回まで呼ぶことができて、分割されたフレームをさらにもう一度分割することが可能である。
program multi use dcl character(len=7) :: ctxt = 'frame??' call DclOpenGraphics() call DclSetFrameMargin( 0.1, 0.1, 0.05, 0.05 ) call DclDivideFrame( 'y', 3, 2 ) call DclSetFrameMargin( 0.05, 0.05, 0.05, 0.05 ) do i=1,12 call DclNewFrame call DclSetViewPort( 0.1,0.9,0.1,0.9 ) call DclDrawViewPortFrame( 1 ) write(ctxt(6:7),'(i2.2)') i call DclDrawTextNormalized( 0.5, 0.5, ctxt ) end do call DclCloseGraphics end program |
|
|
DclDivideFrame (SLDIV) |
フレームを分割する. |
DclSetFrameMargin (SLMGN) |
マージンを設定する. |
DclDrawViewPortFrame (SLPVPR) |
ビューポートの枠を描く. |