Ve fázi vývoje je pro vytvoření kvalitního kódu důležité včasné odhalení syntaktických chyb. Kontrola kódu v reálném čase je pro vývojáře cennou pomůckou. Nejenže zlepšuje efektivitu, ale také zvyšuje kvalitu a produktivitu. Díky okamžité opravě chyb se můžete soustředit na funkční vývoj aplikace, nikoli na nepříjemné chyby, které se objevují během kompilace.
S aplikací 4D 20 R8 s potěšením představujeme dvě nové funkce, které změní způsob vaší práce.
- První z nich je možnost přiřadit třídu k formuláři, což umožňuje kontrolu syntaxe pomocí výrazů, jako je Form.myProperty.
- Druhou je kontrola výrazů v seznamu vlastností v reálném čase se zobrazením popisu chyby nebo varování.
Přiřazení třídy k formuláři
Uživatelskou třídu můžete nyní spojit s formulářem pomocí nového atributu„Form class„. Tento atribut umožňuje zadat objekt, který vrací třída Form příkazem, což umožňuje používat výrazy jako Form.myProperty. Uživatelská třída může pocházet z hostitelského projektu nebo komponenty.
Automatická instanciace za běhu
Při otevírání formuláře můžete předat objekt do tzv. DIALOG příkazu. Tento objekt se pak stane přístupným v rámci formuláře prostřednictvím příkazu Form.
Objekt předaný příkazu DIALOG může být instance třídy. Zde je uveden postup, jak to můžete udělat:
var $h : Integer
var $o : cs.Person
$o :=cs.Person.new()
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass"; $o)
Počínaje verzí 4D 20 R8 platí, že pokud ve formuláři definujete vlastnost„Form class„, aniž byste předali objekt do funkce DIALOG příkazu, 4D se automaticky postará o instanciaci. Stačí napsat:
var $h Integer
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass")
Příkaz Form vrátí objekt, který je instancí třídy „Person“. To můžete ve formuláři zkontrolovat pomocí příkazu OB Instance of příkazem.
$n:=OB Instance of(Form; cs.Person)
Nyní můžete volat funkci třídy jednoduše tak, že napíšete: „Form.message()“.
Výhody pro editor kódu
Funkce automatického dokončování
Funkce Form příkaz těží z funkce automatického dokončování v editoru kódu. Po zadání „Form.“ vám 4D nabídne všechny vlastnosti a funkce deklarované v přidružené třídě. Už žádné převracení dvou písmen v názvu vlastnosti nebo používání malého písmene místo velkého v názvu funkce.
Například u naší jednoduché třídy „Osoba“ definované takto:
property firstname : Text
property lastname : Text
property email : Text
Class constructor
This .firstname:=""
This .lastname:=""
This .email:=""
Function get fullname () : Text
return This .firstname+""+This.lastname
Při použití Form příkazu v rámci metody formuláře vám editor kódu nabídne přesný seznam pro doplnění kódu:
Funkce kontroly syntaxe
Při použití výrazů typu „Form.myProperty“ v metodě formuláře nebo v metodách objektů formuláře využijete sílu nástroje pro kontrolu syntaxe.
Vezměme si příklad z předchozí třídy. V kódu metody formuláře jsme :
- vnucujeme celé číslo do textového atributu,
- použijeme neznámý atribut,
- přiřadíme celé číslo do vypočteného atributu typu text.
Na následujícím obrázku vidíte, že editor kódu účinně identifikoval chyby nebo varování.
Výhody editoru formuláře
Kontrola syntaxe integrovaná do seznamu vlastností
Kontrola syntaxe již není omezena pouze na editor kódu. Tato funkce je rozšířena na výrazy v seznamu vlastností (například„Datasource“ nebo„Meta info expression“). Díky tomu budete dostávat okamžitá upozornění na chyby a varování.
Není třeba čekat na výsledky kompilace, abyste objevili chyby. Díky této funkci budete informováni již ve fázi editace.
Kompilace
Pokud jste nové chyby nevyřešili přímo, kompilátor je samozřejmě zachytí i během kompilace.
Dialogové okno překladače
Všechna varování a chyby se zobrazí v okně kompilace. Pokud poklepete na výraz objektu formuláře, otevře se příslušný formulář a v seznamu vlastností se zvýrazní problematický objekt a jeho vlastnost.
Příkaz Compile project
V případě neúspěšné kompilace se zobrazí příkaz Compile project příkaz vrátí objekt s varováními a chybami. Příkaz byl také rozšířen o možnost vracet varování nebo chyby zjištěné v objektových výrazech formuláře.
{ "úspěch":false, "errors":[{ "message": "Použita nedeklarovaná vlastnost 'firstName'. (550.26)", "isError":false, "code":{ "type": "formObjectExpression", "formName": "Person", "objectName": "InputFirstname", "propertyName": "dataSource", "file":"[objekt File]" } }] }
Co dál
Tyto nové funkce usnadní a zefektivní psaní kódu.
Neváhejte se podělit o své zkušenosti s těmito vylepšeními. Vaše připomínky jsou neocenitelné, protože nám pomáhají pochopit, jak vám tyto nástroje každodenně pomáhají, a lépe je přizpůsobit vašim potřebám.