顧客やユーザーのニーズによって、フォームを変更する必要があるかもしれません。例えば、あるユーザーにとっては黒が完璧でも、別のユーザー(青を究極の完璧と見る人)にとってはそうでない場合もあるでしょう。幸運なことに、ダイナミックフォーム(4D v16 R6で導入)は、ユーザーの好みに対応するために、ここにあります。しかし、既存のフォームをダイナミックフォームに書き換えるのは難しい作業かもしれませんし、白紙の状態からスタートするのは簡単ではありません。理想を言えば、修正や改良が可能なドラフトを用意するのがベストでしょう。4D v17 R3では、クラシックな4Dフォーム(.4DBファイルに保存)をダイナミックフォームに簡単に変換することができるようになりました。
このために、新しいコマンドが用意されています。フォーム名を渡すと、そのフォームを記述したオブジェクトを受け取ることができます。
$oForm:=FORM Convert to dynamic("myProjectForm")
そうすると、フォームにすばやく簡単に変更を加えることができます。たとえば、フォームの「キャンセル」ラベルを持つすべてのオブジェクトのフォントカラーをコードで変更することができます。
// iterate on all objects of first page
$pageObjects:=$oForm.pages[1].objects
For each ($object;$pageObjects)
If (String($pageObjects[$object].text)="@Cancel@")// all widgets with a "Cancel" caption text
$pageObjects [$object].stroke:="red"// change it to red color
End if
End for each
DIALOG ($oForm)
その他の例としては、ダイナミックフォームをユーザーのコンピュータのファイルに保存して、この特定のユーザーだけにパーソナライズされた修正を実装することができます。
フォントの色については、簡単な例でした。フォント、フォントサイズ、入力可能な文字、フォーマット、位置、リサイズ、リサイズオプション、割り当てられたオブジェクトメソッドやフォームイベントなど、まだまだたくさんあります。その場でフォームを完全に再設計することも可能です。可能性は無限大です