pondělí 13. ledna 2014

LiveBindings II - Wizard


LiveBindings Wizard


V minulém příspěvku jsme propojení objektů definovali za pomoci LiveBindings Designeru. Druhou možností, jak navrhovat LiveBindings propojení typu "QuickBindings" je použít "LiveBindings Wizard", který uživatele při realizaci typických požadavků vede krok za krokem. Dialog otevřeme kliknutím na ikonu v okně LiveBindings Designeru:

LiveBindings Wizard lze přidat do kontextové nabídky. Ve vlastnostech prostředí (nabídka "Tools => Options") vybereme "LiveBindings" a zaškrtneme volbu "Display LiveBindings Wizard in context menu".



Od tohoto okamžiku je již možné vyvolat LiveBindings Wizard z kontextové nabídky po klinutí pravým tlačítkem myši na formulář.


Následně si stačí v LiveBindings Wizard dialogu zvolit příslušný typ požadované vazby:


Link a control with field - Propojí zvolenou komponentu s určeným zdrojem dat. Umožňuje vybrat existující nebo definovat novou komponentu a připojit ji k určenému datovému zdroji. Pokud žádný datový zdroj není k dispozici, umožňuje jej definovat.
Link a grid with a data source - Propojí existující nově vytvořenou mřížku (TGrid, TStringGrid) s určeným zdrojem dat. Pokud žádný datový zdroj není k dispozici, umožňuje jej definovat.
Link a component property with a control - Umožňuje vybrat komponentu a její zvolenou vlastnost s jinou existující nebo nově definovanou komponentou.
Link a component property with a field - Propojí vybranou vlastnost zvolené komponenty s požadovaným datovým zdrojem. Pokud žádný datový zdroj není k dispozici, umožňuje jej definovat.
Create a data source - Umožňuje definovat nový datový zdroj (jeho typ, položky, případně doplňkové atributy jako jsou popisky nebo navigační tlačítka).



LiveBindings Wizard je kontextový, takže pokud klikneme pravým tlačítkem myši místo na formuláře na některou z existujících komponent, nabídne pouze relevantní možnosti (viz např. pro CheckBox).

Editace vizuálně navržených vazeb

Vlastnosti propojení definovaných s využitím průvodce "LiveBindings Wizard" nebo LiveBindings Designeru lze samozřejmě editovat v Inspektorovi Objektů. Stačí otevřít LiveBindings Designer a kliknout na příslušnou vazbu (symbol šipky mezi objekty). Možnost editace již definovaných vazeb nabízí také komponenta "BindingsList".


Komponenta BindingsList

Třetí možností jak definovat LiveBindings propojení mezi vlastnostmi komponent nebo komponentami a datovými zdroji je použití komponenty BindingsList (seznam propojení). BindingsList komponentu umístíme na formulář a poklepeme na ni levým tlačítkem myši. Otevře se dialog pro správu propojení. Nové propojení přidáme volbou "New Binding...":

Pokud již bylo pomocí Wizardu nebo LiveBindings Designeru vytvořeno alespoň jediné propojení, byla komponenta BindingsList přidána na formulář automaticky.


Na první pohled vidíme, že nabídka vazeb je rozsáhlejší. Kromě "QuickBindings" dialog nabízí ještě další kategorie, jako jsou "Bindigs Expressions", "Links" nebo "Lists".

Bindings Expressions
Všechna propojení jsou definována jednoduchými textovými výrazy (Bind Expressions), které při běhu aplikace průběžně vyhodnocuje LiveBindings Engine.


TBindExpression - Umožňuje definovat dvojici výrazů "Source Expression" a "Control Expression" mezi právě jednou vlastností zdrojového objektu a jednou vlastností cílového objektu.

  • Source Expression - Výraz, který zajišťuje vyhodnocení vstupu
  • Control Expression - Výraz, který zajišťuje vyhodnocení výstupu
TBindExprItems - Pro některá propojení (např. mezi datovou sadou a mřížkou) může být definováno více výrazů (Expressions Collection). V kolekci mohou být zastoupeny výrazy typu "Format", "Parse" a "Clear":

  • Format - Ovlivňuje tvar, v jakém bude informace předána ("zápis")
  • Parse - Ovlivňuje získání informace ze zdroje ("čtení")
  • Clear - Zajišťuje odstranění dříve předané informace ("čištění")
Links
TBindLink - Určen pro definování propojení umožňující předat hodnotu určené vlastnosti objektu zvolenému datovému zdroji.
TBindListLink - Specializovaný link pro objekty typu List.
TBindGridLink - Specializovaný link pro objekty typu Grid.
TBindPosition - Link umožňující synchronizaci pozice mezi objekty pracujícími s kolekcemi (např. ListBox a Grid).
TBindControlValue - Link umožňující synchronizaci hodnot při jejich změně ve zdrojovém objektu.

Lists
TBindList - Definuje jednosměrnou vazbu pro naplnění objektů jako ListBox, ComboBox a podobně.
TBindGridList - Definuje jednosměrnou vazbu pro naplnění objektů typu Grid.

Bindings Expressions, Links a Lists jsou otevřenější a poskytují více možností pro uživatelská nastavení než vizuální návrh prostřednictvím QuickBindings. Použití konverzí a metod v LiveBindings výrazech bude věnován příští příspěvek.