フレーム

<< Click to Display Table of Contents >>

マニュアル > 画面作成ガイド > フォームとダイアログ/フレーム/ビュー >

フレーム

フレームとは

 

hint

画面の表示エリアを分割して表示する方法には、フレームを使う方法の他、ビューコントロールを使う方法が用意されていますが、ビューコントロールの使用を推奨します。理由として、フレームを使った場合、フレームのレイアウトをスクリプトで動的に変更できない点などが挙げられます。ビューコントロールに関する詳細については、「ビューコントロール(フォームの埋め込み)」を参照してください。

 

 

 

FA-Panelの画面表示方法の一つとして、画面をいくつかの「フレーム」に分割して、作成した複数のフォームをぞれぞれのフレームに表示して全体で1つの画面として表示する機能が用意されています。フレーム分割を行うにはルートプロパティのDefaultFrameでフレームの定義を行います。各フレーム上で表示するフォームはランタイム中に切り替えることも可能です。

 

fap_dialog_0030

 


 

 

サンプルのダウンロード

フレームのサンプルは、以下から利用することができます。

 

 

 

 

Mainとは

FRAMESETの「Main」パラメータで指定したフレームはメイン画面として扱われ、OpenFormメソッドを呼び出した際にフォームが表示される主たるフレームとなります。以下の例では、"Frame1"がメイン画面となり、「::OpenForm("Form03")」とした場合、Frame1(左側のフレーム)にForm03が表示されます。もし、メイン画面以外のフレームのフォームをランタイム中に切り替えたい場合はOpenViewFormメソッドを使用します。

 

<FRAMESET Cols="50%,*" Main="Frame1">

   <FRAME Name="Frame1" BaseFormName="Form01" FormName="FrameForm1"></FRAME>

   <FRAME Name="Frame2" BaseFormName="Form02" FormName="FrameForm2"></FRAME>

</FRAMESET>

 

 

フレームでのフォーム名について

FRAMEの、Name / BaseFormName / FormNameパラメータはダイアログ表示で使用するOpenDialogメソッドの最初の3つの引数と似ています。

 

Nameはフレームに付けるビュー名となります。ビュー名は、OpenViewForm/SetZoomメソッド等で各フレームで表示されているフォームを切り替えたいときに指定する名前です。また、BaseFormNameは、フレームに表示する元フォームの名前です。元フォーム名とはPanel Editorで作成したフォーム本体です。そして、FormNameには、フレームに実際にフォームが表示された時のフォームオブジェクトの名前を指定します。

 

例)ビュー名が"Frame1"のフレームで、Form03をFrameForm03という名前で開く

 

::OpenViewForm ("Frame1", "Form03", "FrameForm03");

 

 

スクリプトからフォームを参照する際にはFormNameで指定した名前を使用します。

 

例)FormNameに"FrameForm1"を指定した場合のスクリプトからの参照

 

::FrameForm1.FillColor = "#FF0000";

 

このフォーム名(FormName)はダイアログ、ビューコントロールを含め、現在開かれている全てのフォームで重複した名前を指定することはできません。

 

また、1つの元フォームに対して異なるフォーム名(FormName)を指定すれば、以下のように1つの元フォーム(BaseFormName)の画面を複数のフレーム上に同時に開くことができます。

 

例)同じ元フォームで9つのフレームで同時に表示する

 

fap_dialog_0035

 

 

FRAMESETパラメータ

FRAMESETのパラメータ一は以下のとおりです。

 

パラメータ

解説

Cols

Rows

(必須)

列(Cols)及び行(Rows)の定義。各列や行のサイズをカンマ区切りで指定します。サイズの指定は以下の3通りで定義できます。

 

1) 数値

数値で指定した場合、ピクセル単位で固定幅になります。Panel Browserのサイズを大きくしたり、小さくしたりしても、サイズは変わりません。

 

2)数値%

数値%で指定した場合、現在のPanel Browserのサイズを基準とした割合でサイズが決定されます。例えば50%と指定すると、Panel Browserのサイズを大きくするにつれ、50%のサイズでフレームサイズも大きくなります。

 

3) *

アスタリスクを指定した場合、サイズは自動調整されます。

 

例)Cols = "50, *, 50"

3列を定義し、左右の列は50ピクセル固定で、中央の列はPanel Browserの幅から左右の列サイズの合計(100ピクセル)を引いたサイズになります。

 

例)Cols = "33%, 33%, *" Rows = "25%,25%,25%,*"

12個(3列x4行)のフレームを定義します。

 

Main

(必須)

フレームセット内では複数のフレームが定義されますが、その中でメイン画面となるフレームを指定します。OpenFormメソッドで開かれるフォームは、メイン画面で開かれます。

※複数階層(入れ子)にした場合、一番トップのFRAMESETのMainの設定のみ有効になります。

ColMovableSeparators

RowMovableSeparators

各フレームのセパレータをマウスで移動できるようにするかどうかを設定します。

 

fap_dialog_0036

 

ColMins

RowMins

フレームを移動可能にする場合は、「Y」、移動不可にする場合は「N」を指定します。セパレータはフレーム数 - 1だけ存在し、YもしくはNをセパレータの数だけ、カンマ区切りで指定します。

 

例)Cols = "50, *, *, 50" ColMovableSeparators="N,Y,N"

2列目と3列目のフレーム間のセパレータのみ移動可能とする。

 

何も指定しないと、全てのセパレータをマウスで移動できます(FrameSpacingに0を指定すると、「Y」を指定してもセパレータを移動できません)。

 

ColMins

RowMins

各列及び行の最小サイズ。Cols/Rowsでサイズをピクセル以外の指定方法で指定した場合、Panel Browserのサイズにより各サイズは自動調整されますが、そのとき最小のサイズを指定します。-1を指定すると、特に指定しないという意味になります。

 

例)Cols = "50, *, *, 50" ColMins = "-1, 30, 30, -1"

2列目と3列目の最小サイズを30ピクセルに設定する

 

FrameSpacing

フレーム間のスペース(セパレータのサイズ)。ピクセル単位で指定します。何も指定しないと、4が指定されます。0を指定すると、セパレータのサイズが0になり、セパレータのマウス移動ができなくなります。

 

例)

FrameSpacing="10"

 

FrameSpacingColor

フレーム間のスペース間の色(セパレータの色)。色文字で指定します。なにも指定しないと、Windows標準のフォーム色が使用されます。

 

例)

FrameSpacingColor="#FF0000"

 

BorderStyle

フレームセットの枠のスタイル。

"NONE" - 枠なし(フォームとセパレータの色が同じ場合、セパレータを

見えないようにすることができます。)

" FLAT " - 黒線の枠(立体表示無し)

" 3D_SUNK1" - 3Dでのくぼみがある枠で表示(セパレータが浮き上がって見える。)

"3D_ SUNK2" - 3D_SUNK1より深いくぼみで表示。

 

 

 

FRAMEパラメータ

FRAMEのパラメータ一は以下のとおりです。

 

パラメータ

解説

Name

(必須)

ビュー名(OpenViewForm/SetZoomなどで使用されます)。

 

 

BaseFormName

(必須)

フレームに表示したい元フォームのフォーム名を指定します。

FormName

(必須)

フォーム名(任意の名前)。スクリプトからオブジェクトとして参照するためのフォーム名を指定します。ダイアログ、ビューコントロールで埋め込まれているフォーム、他のフレームのフォーム名で重複してはいけません。

Stretch

フレームの大きさに合わせてフォームの大きさを広げる。何も指定しないと"DEFAULT"が設定されます。

 

"NONE" - ストレッチしない

"STRETCH_FULL" - フレームの大きさに合わせて引き伸ばし表示する

"STRETCH_KEEPRATE" - フレームの大きさに合わせて引き伸ばし表示する(縦横比保持)

"DEFAULT" - デフォルト値(ルートプロパティStretch)と同じ

AlignmentX

AlignmentY

Stretchで"NONE"を指定した場合、フォームは固定サイズで表示されます。その際、フレームサイズがフォームサイズより大きくなった場合、フォームをどの位置に表示するかを指定します。何も指定しないと中央に表示されます。

 

AlignmentXの場合

"LEFT" - 左詰に表示

"Center" - 左右方向の中央に表示

"RIGHT" - 右詰に表示

 

AlignmentYの場合

"TOP" - 左詰に表示

"Center" - 上下方向の中央に表示

"BOTTOM" - 右詰に表示

 

例)AlignmentX="LEFT" AlignmentY="TOP"

左上につめて表示します。

 

フォームの領域外の色はフォームプロパティViewFillColorで指定できます。フォームの色と同じ色に指定することにより、フレームサイズがフォームサイズより大きくなった場合でも、フォームが広がったように見えます。

 

ScrollBarX

ScrollBarY

Stretchで"NONE"を指定した場合、フォームは固定サイズで表示されます。その際、フレームサイズがフォームサイズより小さくなった場合、スクロールバーを表示するかどうかを指定します。何も指定しない場合、スクロールバーは自動表示されます。

 

"AUTO" - 必要なとき、自動的にスクロールバーを表示します。

"Y" - フレームサイズに関わらず、必ずスクロールバーを表示します。

"N" - フレームサイズに関わらず、スクロールバーを表示しません。

 

BorderStyle

フレームの枠のスタイル。

"NONE" - 枠なし(フォームとセパレータの色が同じ場合、セパレータを見えないようにすることができます。)

" FLAT " - 黒線の枠(立体表示無し)

" 3D_SUNK1" - 3Dでのくぼみがある枠で表示(セパレータが浮き上がって見える。)

"3D_ SUNK2" - 3D_SUNK1より深いくぼみで表示。