Vaše formuláře může být nutné změnit v závislosti na potřebách zákazníků nebo uživatelů. Například černá barva může být pro jednoho uživatele dokonalá, ale pro jiného uživatele (který považuje modrou barvu za naprostou dokonalost) už tolik ne. Naštěstí jsou tu dynamické formuláře (představené v 4D v16 R6), které vám pomohou vypořádat se s preferencemi vašich uživatelů. Přepsat stávající formulář na dynamický však může být obtížný úkol a ne vždy je snadné začít s prázdnou stránkou. V ideálním případě by bylo nejlepší mít k dispozici návrh, který lze upravovat a vylepšovat. S verzí 4D v17 R3 je nyní možné snadno převést klasický formulář 4D (uložený v souboru .4DB) na dynamický formulář.
K tomu je k dispozici nový příkaz. Předejte mu název formuláře a obdržíte objekt popisující formulář.
$oForm:=FORM Convert to dynamic("myProjectForm"
)
Poté můžete ve formuláři snadno a rychle provádět změny. Například můžete kódem změnit barvu písma pro všechny objekty s nápisem „Storno“ ve formuláři:
// iterate on all objects of first page
$pageObjects:=$oForm.pages[1].objects
For each ( ; ) ( ( [ ]. )="@Cancel@") [ ]. :="red" ($object$pageObjects
IfString$pageObjects$objecttext // all widgets with a "Cancel" caption text
$pageObjects$objectstroke // change it to red color
End if
End for each
DIALOG$oForm).
Jiný příklad: Dynamický formulář můžete uložit do souboru v počítači uživatele a provést implementaci personalizovaných úprav pouze pro tohoto konkrétního uživatele.
Barva písma byla jen jednoduchým příkladem. Ale to není všechno … písmo, velikost písma, zadávání, formát, pozice, změna velikosti, možnost změny velikosti, přiřazená metoda objektu nebo události formuláře a mnoho dalšího. Formulář můžete za běhu zcela přepracovat. Možnosti jsou nekonečné!