2025/08/29

レイアウト領域のダイアログボックス

前回は、@DialogBox を紹介しました。ダイアログボックスとして表示する画面は、通常のフォームと同様に作るのですが、前回の事例では表を利用しました。今回は、もう一つのデザイン方法であるレイアウト領域を使った例をご紹介します。


レイアウト領域とは

Visual Basic のフォームを作成するような操作で画面を作成できるのがレイアウト領域です。

ノーツフォーム上では段落(1 行)単位で文字やボタンなどを配置していきますが、レイアウト領域では、エリア内にオブジェクトを自由に配置できます。上記画面では前回作成した、部門の選択画面をレイアウト領域に書き換えてみたものです。自由な位置とサイズで、固定のテキストやフィールドを配置しています。


レイアウト領域の作成

フォーム内にカーソルを置き[作成]-[レイアウト領域]-[新規レイアウト領域]で作成します。追加された白い四角がレイアウト領域となります。領域の大きさは、黒い四角の点をドラッグドロップして変更できます。

レイアウト領域のプロパティでもサイズの調整は可能です。

3D スタイルにチェックを付けると背景がグレーになり、ダイアログボックスらしい色遣いになります。また、グリッドを表示して、グリッドに合わせると、この先のオブジェクトの位置揃えがしやすくなります。


オブジェクトの作成

レイアウト領域を選択してフィールドを作成すると、次のようになります。マウスで移動やサイズを変更ができるところが特徴ですね。ツールバーからさまざまなオブジェクトが作成できます。

フォームでは文字は直接入力できるのですが、レイアウト領域では、テキストボックスを作成してその中に文字を入れることになるので注意してください。

ペイントなどで作成した画像を配置することも可能です。クリップボードから貼り付ける際に[図形要素ボタン]を選ぶと、ホットスポットとして動作する画像にすることも可能です。

この記事の最初の画像で、メッセージ下にある青い線はこの ”図形” で作成しています。


なお、非表示設定はオブジェクト単位で行います。通常のフォームのように段落という考え方はない点もポイントです。


レイアウト領域のテスト

フィールドの設定などは通常のフォームとは多少違いますが、似たような操作で作業を進めます。でき上がったらプレビューで確認します。

希望通りのデザインになっていれば完成です。プレビューを閉じるとき保存するとそのフォーム名の文書ができるので注意してください。


ダイアログボックスとしての利用

フォームが完成したら、ダイアログボックスとしてテストします。前回作成したメインフォームの[選択]ボタンの式を書き換えます。フォーム名を変更し [SizeToTable] キーワードを削除します。

@DialogBox("dlgSetDept2"; [AutoHorzFit]:[AutoVertFit]; "部門の選択")

メインフォームをプリビューして[選択]ボタンをクリックします。次のようなダイアログボックスが表示されたら成功です。


まとめ

今回は、レイアウト領域を使ったダイアログボックスの作成方法についてまとめました。

レイアウト領域を使った場合、表より細やかな制御や自由な画面が作成できます。半面、位置合わせは非効率ですし、非表示制御など設定個所が増え煩雑となります。特徴を理解したうえで使い分けるといいでしょう。


0 件のコメント:

コメントを投稿