|
前章のプログラムでは、画面を固定サイズにしていましたが、フォームの BorderStyleプロパティを「bsSizeable」にすると、フォームの大きさを変更出来るようになります。勿論、最小化(アイコン化)、最大化、も可能です。
フォームをリサイズ化にすると、以前のままの画面では余白が出来てしまったり、コントロールが見えなくなってしまったりします。それに、余りCADっぽくない画面でした。
まずは、画面下にステータスバーを置きたいです。ただ、画面一番下に後々ボタンを配置したくなるかもしれませんので、[Standard]内のPanelを配置し、そのAlignプロパティを「alBottom」にします。更にその上にもう1つPanelを配置してAlignプロパティを「alLeft」にし(右側に置きたい場合には「AlRight」)、先のPanel上で[Win32]内のStatusBarを配置して Alignプロパティを残り全部という事で「alClient」にします。StatusBarにPanelを3つ新規追加します。フォーム画面下にステータスバーが出来ました。
次に、[Standard]内のPanelを配置し、右側にボタン等を置くため、Alignプロパティを「alRight」にします。そして、残った部分全てを PaintBoxで、としたい所ですが、スクロールバーも配置しますので、更に、[Standard]内のPanelを配置しAlignプロパティを「alClient」にします。その上にスクロールバーを配置して、残りをPaintBoxにします。
そして、フォームがリサイズされた場合には、フォームのOnResizeイベントが発生します。フォーム上のコントロールでもOnResizeイベントを受け取れるものはありますが、PaintBoxにはありませんので、フォームのOnResizeイベント内に対応するプログラムコードを記述します。画面の大きさが変わりますので、画面の大きさを保持する変数 SC_x,SC_yを取得し直して、それに従って、ビューポートエリアを管理する変数 WD_x1,WD_y1,WD_x2,WD_y2の値も変更します。この後、画面を再作図しますが、PaintBoxのOnPaintイベントも発生しますので、そちらに任せます。
その他、少しだけ画面レイアウトを変更しています。
ここまでのプログラムです。
【サンプルプログラムのソース】
ファイル名を変更した場合、uses節に指定しているユニット名も変更する必要がありますので注意して下さい。
|
|
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
▲PREV
▼NEXT
|