FORM SET SIZE
FORM SET SIZE ( {object ;} horizontal ; vertical {; *} )
引数 | 型 | 説明 | |
---|---|---|---|
object | Text | → | フォームの境界を指定するオブジェクト名 |
horizontal | Integer | → | * が渡されていれば: 水平マージン (ピクセル) * が省略されていれば: 幅 (ピクセル) |
vertical | Integer | → | * が渡されていれば: 垂直マージン (ピクセル) * が省略されていれば: 高さ (ピクセル) |
* | 演算子 | → | 渡されれば: horizontalとvertical引数で 指定されたマージンを加える (自動サイズまたはobjectが指定されればそれを基ととしたサイズ) 省略すれば: horizontalとverticalをフォームの幅と高さにする |
このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。
説明
FORM SET SIZE コマンドを使用すると、プログラムからカレントフォームのサイズを変更することができます。新しいサイズは、カレントプロセスに対して定義され、フォームには保存されません。
デザインモードと同様に、このコマンドを使用して、3通りの方法でフォームサイズを設定することができます:
- 自動: すべてのオブジェクトが表示されるよう、4Dがフォームサイズを決定。縦横マージンを追加可能。
- 指定したフォームオブジェクトの位置に基づき決定する。縦横マージンを追加可能。
- 幅と高さを直接指定。
フォームのリサイズに関する詳細は、4D Design Referenceマニュアルを参照してください。
自動サイズ
自動でフォームサイズを設定したい場合、以下のシンタックスを使用します:
FORM SET SIZE(horizontal;vertical;*)
この場合、horizontal と verticalにはそれぞれ右と下に追加するマージンをピクセル単位で渡します。
オブジェクトを基にしたサイズ
オブジェクトを基にフォームサイズを決定したい場合、以下のシンタックスを使用します:
FORM SET SIZE(object;horizontal;vertical)
この場合、horizontal と verticalにはそれぞれオブジェクトの右と下に追加するマージンをピクセル単位で渡します。* 引数を渡すことはできません。
サイズ指定
フォームサイズを固定で指定したい場合、下のシンタックスを使用します:
FORM SET SIZE(horizontal;vertical)
この場合、horizontal と verticalにはそれぞれフォームの高さと幅を指定します。
FORM SET SIZE コマンドはフォームサイズを変更しますが、サイズ調整プロパティも考慮します。例えば、フォームの最小幅が500ピクセルの場合に、コマンドで幅を400ピクセルに設定すると、新しいフォーム幅は500ピクセルになります。
また、このコマンドはフォームウィンドウのサイズは変更しないという点に注意してください。ウインドウサイズを変更しないでフォームサイズを変えることもできます(その逆も同様)。フォームウィンドウのサイズを変更する方法については、RESIZE FORM WINDOW コマンドを参照してください。
例題
次の例題は、エクスプローラタイプのウィンドウの設定方法を示しています。以下のフォームはデザインモードで作成します:
フォームのサイズは “自動”です。
ウィンドウは以下のコードで表示されます:
$ref:=Open form window([Table1];"Form1";Plain form window;Horizontally centered;Vertically centered;*)
DIALOG([Table1];"Form1")
CLOSE WINDOW
ウィンドウの右の部分はオプションのクリックにより表示されたり隠されたりします。:
このボタンに関連付けられたメソッドは以下のようになります:
Case of
:(Form event code=On Load) //v17 以前ではForm event を使用すること
var b1;<>collapsed : Boolean
var margin : Integer
margin:=15
b1:=<>collapsed
If(<>collapsed)
FORM SET HORIZONTAL RESIZING(False)
FORM SET SIZE("b1";margin;margin)
Else
FORM SET HORIZONTAL RESIZING(True)
FORM SET SIZE("tab";margin;margin)
End if
:(Form event code=On click) //v17 以前ではForm event を使用すること
<>collapsed:=b1
If(b1)
//collapsed
OBJECT GET COORDINATES(*;"b1";$l;$t;$r;$b)
GET WINDOW RECT($lf;$tf;$rf;$bf;Current form window)
SET WINDOW RECT($lf;$tf;$lf+$r+margin;$tf+$b+margin;Current form window)
FORM SET HORIZONTAL RESIZING(False)
FORM SET SIZE("b1";margin;margin)
Else
//expanded
OBJECT GET COORDINATES(*;"tab";$l;$t;$r;$b)
GET WINDOW RECT($lf;$tf;$rf;$bf;Current form window)
SET WINDOW RECT($lf;$tf;$lf+$r+margin;$tf+$b+margin;Current form window)
FORM SET HORIZONTAL RESIZING(True)
FORM SET SIZE("tab";margin;margin)
End if
End case