フォーム中のオブジェクトはそれぞれプロパティを持ち、アプリケーションモードでのアピアランスや表示方法、リサイズ方法などが指定されます。これらのプロパティはプロパティリストからアクセスします (フォームエディター 参照)。
ダイナミックオブジェクトに関する特定のプロパティはアクティブオブジェクトを使用する 、リストボックス 、そしてサブフォームとウィジェット で説明します。
フォームエディターでオブジェクトのサイズを設定する方法には以下があります:
サイズ変更ハンドルをドラッグする。 Ctrl (Windows) やCommand (Mac OS) と矢印キーを使用して1ピクセルずつ変更する。 ステップごとに変更する (デフォルトで1ステップ=20ピクセル)。 プロパティリストに値を入力する。 ハンドルを使用する標準の方法でオブジェクトのサイズを変更できます。Shift キーを押してハンドルをドラッグすると制約付きのサイズ変更となります。線は水平、45°、あるいは縦にひかれ、四角は正方形に、楕円は円になります。マグネティックグリッドが有効になっていると、手作業によるサイズ変更は5ピクセル単位になります。マグネティックグリッドについてはマグネティックグリッドを使用する を参照してください。 1ピクセルずつオブジェクトをサイズ変更するには、オブジェクトを選択し、Ctrl (Windows) または Command (Mac OS) キーを押しながら矢印キーを使用します。上または下矢印キーを押すとオブジェクトの高さが変更され、左あるいは右矢印キーを押すとオブジェクトの幅が変更されます。同時にShift キーを押すとステップ単位 (デフォルトで20ピクセル) でサイズ変更されます。デフォルトのステップ単位は環境設定のフォームページ で変更できます。
座標を入力してオブジェクトを移動したりサイズ変更したりするには、オブジェクトを選択して、プロパティリストの"位置調整&サイズ調整"テーマを展開します。座標はルーラーに設定した単位に基づきピクセル、センチ、インチ単位で表示されます。フォームエリアの左上座標が0,0です。座標入力エリアに新しい座標を入力します。
4Dは入力された座標にオブジェクトを移動します。指定した値に基づき、オブジェクトはサイズ変更や移動されます。
注: マルチプラットフォームのコンテキストでは、スタイルシートを適用することでオブジェクトの高さが可変になることがあります。オブジェクトの高さはカレントのプラットフォームに設定されたフォントの高さに基づき倍数で計算されるためです。スタイルシートについてはスタイルシート を参照してください。
スタティックテキストエリアとピクチャーを、現在のグラフィック特性 (フォントサイズ、スタイル等) に基づき自動で最適表示サイズにすることができます:
オブジェクトを右クリックし、コンテキストメニューから自動サイズ を選択する。 またはCtrl (Windows) または Command (Mac OS) キーを押しながらオブジェクトの右下のハンドルをクリックする。 このコマンドは以下の効果を及ぼします:
スタティックテキストエリア、チェックボックス、ラジオボタン、そしてボタンは含まれるテキスト (ラベル) 丁度の大きさに調整されます。 フィールドと変数は最低高さが選択されているフォントサイズに、幅が100ポイントになります。オブジェクトサイズがこれらより大きい場合、変更はされません。 ピクチャーやピクチャーボタンはソースピクチャーを元のサイズで表示する大きさになります。 スクロールエリアと階層リストはカレントフォントに基づいて高さが調整されます。 コンボボックス、ポップアップ/ドロップダウンリスト、階層ポップアップメニューは、現在の高さが小さい場合、デフォルトの最低の高さで表示されます。
角の丸い四角 タイプのオブジェクトのプロパティリスト内には、"座標とサイズ"テーマ内に角の半径 というプロパティがあります:
デフォルトでは、角の丸い四角の角の半径は5ピクセルと鳴っています。このプロパティを変更することによって独自の形の角の丸い四角を描画することができます:
最小値は0で、この場合には標準の(角の丸くない)四角が描画されます。 最大値は四角のサイズに応じて変化し、動的に計算されます(ただし四角の短辺の半分を超えることはできません)。
このプロパティは、OBJECT Get corner radius と OBJECT SET CORNER RADIUS コマンドを使用して設定することもできます。
アプリケーションモードでユーザーがフォームを表示しているウィンドウのサイズを変更すると、そこに含まれるオブジェクトもサイズ変更されたり、移動されたりします。
フォームを表示するウィンドウのサイズをユーザが変更すると、自動サイズ調整が行われます。自動サイズ調整により、フォームを拡げるとオブジェクトも拡大されます(または拡げたウィンドウが縮小された場合にはオブジェクトも縮小されます)。例えば入力フォーム上でフィールドを囲む四角形を使用している場合は、ユーザがウィンドウを拡大すると、自動サイズ調整によりその四角形はウィンドウの端まで拡げられます。
また、自動位置調整機能を利用することも可能です。フォームサイズが変更されると、自動位置調整によりオブジェクトは水平方向または垂直方向に移動されます。自動位置調整が有効である場合、ユーザがウィンドウサイズを小さくすると、4D は見える位置にそのオブジェクトを維持しようとします。例えば、ボタンの列のサイズが変更されて、一部のボタンが隠れてしまった場合、自動位置調整により、ボタンは水平方向または垂直方向へ移動され、ボタンが表示される位置に調整されます。
自動サイズ調整機能や自動位置調整機能は、プロパティリストのリサイズオプションテーマで有効にすることができます。このテーマには水平サイジングと垂直サイジングという2 つの行があり、3 種類のプロパティを指定することができます(なし 、拡大 、移動 )。
オプション 結果 水平方向サイジング: 拡大 ユーザがウィンドウの幅を変更すると、オブジェクトの幅にも同じ割合を適用します。 水平方向サイジング: 移動 ユーザがウィンドウの幅を変更すると、幅の増加分と同じだけオブジェクトを左か右に移動します。 垂直方向サイジング: 拡大 ユーザがウィンドウの高さを変更すると、オブジェクトの高さにも同じ割合を適用します。 垂直方向サイジング: 移動 ユーザがウィンドウの高さを変更すると、高さの変更分と同じだけオブジェクトを上か下に移動します。
位置調整オプションを使用すると、表示された状態を維持するために、オブジェクトは指定された方向へ移動されます。
なし オプションを指定すると、フォームサイズが変更されても、オブジェクトは固定されたままになります。
4Dでは、デフォルトで各ウィンドウの右側面と下側面は“プッシャー”スプリッターとして機能します。つまりウィンドウを大きくすると、画面上のウィンドウ境界の右側や下側にあるオブジェクトが右方向や下方向へ自動的に押し出されます:
注: この機能はスクロールバー付きのウィンドウでは動作しません。
大部分のオブジェクトに対してデフォルトで非表示 プロパティを指定することができます。
プロパティリストの"表示"テーマにあるこのプロパティを使用すると、ダイナミックなインターフェースを容易に開発できるようになります。このようなインターフェースを開発するとき、多くの場合はフォームのOn Load イベント中にプログラムからオブジェクトを非表示にした後で、一部のオブジェクトを再度表示する必要性が頻繁に生じます。
デフォルトで非表示 プロパティを使用すると、特定オブジェクトをデフォルトで非表示にしておくことにより、このロジックを逆に働かせることができます。この後、開発者は状況に応じてOBJECT SET VISIBLE コマンドを使用し、これらのオブジェクトを表示するようプログラミングすることができます。このコマンドに関する詳細は4Dランゲージリファレンスマニュアルを参照してください。
注: このプロパティとポップアップメニューの非表示プロパティを混同しないでください。ポップアップメニューの非表示プロパティでも、オブジェクトが表示されなくなりますが、そのオブジェクトはアクティブな状態のままです。
プロパティリストの"アピアランス"テーマでオブジェクトごとにアピアランスを設定できます。これを行うには以下の選択肢があります:
フォームから継承 : オブジェクトのプラットフォームインターフェースはフォームのそれと同じです。フォームのプラットフォームインターフェースはフォームプロパティ で設定されます。システム : フォームレベルに設定されたプラットフォームにかかわらず、オブジェクトはアプリケーションが実行されているプラットフォームに従って描画されます。印刷 : フォームレベルに設定されたプラットフォームにかかわらず、オブジェクトは印刷用に描画されます。 注: 以前のバージョンの4Dから変換されたデータベースの場合、追加のプラットフォームプロパティを選択できることがあります。プラットフォームインターフェースプロパティについてはフォームプロパティ を参照してください。
背景と境界プロパティを使用してオブジェクトの境界線やグラフィックアピアランスを設定できます。
透過 属性は、透明または不透明になることができるオブジェクト (フィールド、変数、リストボックス、ボタン、ピクチャー、スタティックテキスト等) の"背景色と境界線"テーマで利用できます。オブジェクトの背景を透明にして、フォームの背景色を使用することができます。
以下の例は透明属性を設定していない、また設定したスタティックピクチャーです:
プロパティリストの"背景色と境界線"やコンテキストメニューの境界線スタイル サブメニューを使用して、ほとんどのオブジェクトの境界線スタイルを変更できます。これを行うには以下の選択肢があります:
なし: 境界線なし 標準: 連続した1ptの境界線 ドット: 1ptの非連続境界線 浮き上がり: 3D効果 (浮き上がり) の境界線 くぼみ: 3D効果 (くぼみ) の境界線 二重: 二重境界線 注: このテーマの他のプロパティは設定された線のタイプによって変化します。例えば"ドット"を選択すると、プロパティリストに点線タイプ プロパティが表示されます。
以下はWindowsにおける境界線スタイルの例です:
異なるフォームオブジェクトごとのこのオプションの効果については、ボタン とチェックボックス を参照してください。
4Dではモニターへの表示や、カラープリンターでの印刷時に使用できる、カラープロパティをオブジェクトに設定できます。
コンテキストメニューのカラーコマンドまたはプロパティリストから直接選択して、背景と境界線に異なるカラーを設定できます。
注: プロパティリストでは背景色が塗りカラー 、境界線の色が線カラー と記載されています。コンテキストメニューでは描画色が線カラーに対応します。
背景色ではプロパティリストで2つの標準オプションを利用できます:
自動 : オブジェクトはOSに設定された自動カラーを使用して表示されます。なし : オブジェクトの背景は透過になります。プロパティリストでは他... を選択することでシステムカラーパレットを表示し、カスタム色を選択することができます。
このプロパティは境界線スタイル で"ドット"を選択すると表示されます。ドット線フォーマットを選択するために使用します:
4Dでは線や、楕円、グリッド、四角などのオブジェクトに線幅を設定できます。
線幅はプロパティリストやオブジェクト メニューの線幅 メニュー項目から指定します:
線幅を一つ選択します。プリンターで印刷できる最細幅である極細線及び1, 2, 3 あるいは 4ポイントの線幅から選択できます。その他... を選択すると、4Dは20ポイントまでを指定できるダイアログボックスを表示します。
プロパティリストの"テキスト"テーマ、またはオブジェクト メニューのフォント 、スタイル 、カラー サブメニューを使用して、テキストオブジェクトのフォント属性・スタイル属性を設定できます。
以下の属性を設定できます:
スタイルシート (プロパティリストのみ): オブジェクトにスタイルシートを割り当てる。スタイルシートについてはスタイルシート を参照してください。フォント : オブジェクトで使用するフォント名。スタイル : オブジェクトで使用するスタイル (ボールド、イタリック、下線)。フォントサイズ : ポイント単位のフォントサイズ。フォントカラー : オブジェクト中で使用されるフォントのカラー。コンテキストメニューでは描画色が対応します。行スタイル配列/行フォントカラー配列 : スタイルとカラーを管理する配列名(配列型のリストボックスのみ)横揃え : エリア中のテキストの横位置縦揃え : エリア中のテキストの縦位置回転 : テキストエリアの角度(回転)を修正します。これについての詳細な情報は、テキストの回転 を参照して下さい。マルチスタイル : アプリケーションモードで、フィールドや変数などのテキストエリアにカスタムスタイルを適用できるようにします。詳細はGET DATA SOURCE LIST を参照してください。ピッカーの使用を許可 : OPEN FONT PICKER または OPEN COLOR PICKER を使用してユーザーがフォントまたはカラーピッカーが呼び出し、カレントセッションの間オブジェクトのフォントまたはカラーを変更することを許可します。このオプションはシステムピッカー(font picker と color picker )コマンドのアクションのスコープを管理します。フィールド、変数、そしてコンボボックス型のフォームオブジェクトにおいて使用することが出来ます。デフォルトでは、このオプションは全てのフォームオブジェクトにおいてチェックが外されています。システムピッカーウィンドウを使用してフォント・カラー属性を変更可能にしたいオブジェクトに関しては、全て明示的にこのオプションをチェックしなければなりません。
Appleからの推奨に従い、OS Xの4D v13ではテキストレンダリングに使用されている frameworks が更新され統一されています(廃止予定であったQD/MLTE frameworks を放棄し、CoreText の使用へと移行しました)。
この新しいCoreText framework への移行に伴う問題が最小限にとどまるように努力はしておりますが、OS Xの4D v13へと変換されたアプリケーションのテキストエリアのレンダリング(特に改行に関するレンダリング)において多少の変化を引き起こす可能性があります。この場合、変換する前のv12のデータベース内でいくつかのフォームオブジェクトをリサイズする必要があるかもしれません。