1999年4月16日オブジェクト指向xBASE言語研究会勉強会資料
リサイズフォームサンプル
このサンプルを制作者に無断で転載/配布することを禁じます。
このサンプルを実行したために発生する如何なる損害に対しても制作者・配布
者はその責任を追いません。
このサンプルはMicrosoft Visual FoxPro/Ver6.0(ServicePack1) 用です。
はじめに
このサンプルを実行するには、vfpgrdex.lzh(xBaseフォーラムに登録)
がダウンロードされており、
動作する環境が作られていることが必要です。
このプログラムをコンパイルするためにはvfpkhook.lzh(xBaseフォーラ
ムに登録)内に同梱されているindex.htmも参照して下さい。
本説明はコンパイル方法等については詳述してありません。
● vfpgrdexプロジェクトを作成する
アプリケーションウイザードを起動し([Tools]-[Wizards]-[All]-[5.0互
換ウイザード] を起動します)FrameWorkOnlyをチェック後、プロ
ジェクト名をvfpgrdexにします。ディレクトリーは出来ればc:にして下さい。
● resizefrm.zipを解凍する
mainmenu.mnt
mainmenu.mnx
mainmenu.mpr
mainmenu.mpx
rsizefrm.sct
rsizefrm.scx
resizeclasses.vct
resizeclasses.vcx
resizefrm.htm
上記ファイルが解凍されます。これを以下のディレクトリに設置します。
c:\vfpgrdex
|
+− Forms : rsizefrm.sct rsizefrm.scx
|
+− Class Libraries : resizeclasses.vct resizeclasses.vcx
|
+− Menus : mainmenu.mnt mainmenu.mnx mainmenu.mpr
|
+− Help : resizefrm.htm
● projectにメニューとフォームを登録します
プロジェクトウインドウを開けて
[Documents]-[Forms]をクリックした後に[Add]ボタンを押します。rsizefrmを
指定して登録します。
[Cls]をクリックした後に[Add]ボタンを押します。resizeclassesを指定して
登録します。
[Other]-[Menus]をクリックした後に[Add]ボタンを押しMainMenuを登録します
。
● アプリケーションのコンパイル
[Code]-[Programs]-[Vfpgrdex]をクリックした後に[Build]ボタンを押します
。
Build Optionダイアログが開きますので ( Action )-◎Build Applicationを
チェックし[OK]ボタンを押します。
コンパイル完了後 [Code]-[Programs]-[Vfpgrdex]をクリックした後に[Ru
n]ボタンを押し実行します。
※実行前に(View)-(Toolbar)-[Standard]のチェックをはずして下さい。
● コントロールもリサイズするフォームの作り方
グリッドを作成する方法は色々ありますがデータファイル情報をカーソルオブ
ジェクトとしてフォームに設定した後にそこからグリッドを作成する方法を説明
します。
1. | フォームを新規に作ります。 |
2. |
[Form Controls]をresizeclassesに切り替えます。
|
3. |
[Form Controls]のform_rzを選択し、[Form Designer]のフォーム上をクリッ
クします。
|
4. |
作成された、Form_rsの位置を多少ずらします。
|
5. |
メニューバーの[Form]-[Remove Form Set]を選択し、フォームセットを削除し
ます。
|
6. |
PCの解像度をForm_rsのdevhightとdevwidthに指定します。 |
7. |
vfpgrdexの「グリッドの作り方」を参考にして、フォームを完成させます。 |
備考:vfpgrdexをリサイズ可能にする最低限のクラスしか作成していません。
他に必要なクラスは
ご自身で作成してください。
フォームが起動される時(Initイベント)、クローズされる時(Destroy
イベント)にリサイズされた
フォームの位置やサイズを復元したり保存する処理を加えると、更に使い勝
手が向上するは
ずです。
form_rsのカスタムプロパティとメソッド devhight - 開発マシンのディスプレイの解像度(高さ) devwidth - 開発マシンのディスプレイの解像度(幅) cotrolcounter - フォーム上のコントロール(オブジェクト)の数 originheight --- originwidth | origintop | フォームのオリジナルのサイズと位置 originleft ----- prevheight ---- prevwidth ---+ リサイズ直前のフォームのサイズと位置 setcontrols[ ] コントロールの参照用配列 setcontrolsizes[ ] コントロールのサイズ情報の配列 setresize コントロールの元のサイズの退避と、配列にコントロールの参照を設定 resizecontrols フォームがリサイズされた時に、コントロールの大きさを再計算する resetsize 元のフォームサイズに戻す setresolution フォームサイズの変更