Základní výhodou (Visual) LiveBinding je možnost propojení prakticky libovolného prvku s prakticky čímkoliv. Např. v případě databází nejste omezeni jen TDBxx komponentami (resp. rovnou na ně klidně zapomeňte).
Na začátek malou ukázku nevšedních uživatelských prvků.
Mějme novou VCL aplikaci a vložíme tam ClientDataSet s daty pro FishFact. Nyní si na formulář vložím TListView a TListBox. U TListView nastavím mód zobrazení na vsReport a přidáme několik sloupců. Nyní na inkriminovaném TListView zvolíme Bind Visually. Objeví se LBD a na formulář se přidá komponenta TBindSourceDB, která reprezentuje zdroj dat - v tomto případě databázi.
Na uvedeném příkladu je vidět prolinkovaný zdroj dat s ListView a pro vybranou hodnotu u ListView je via LookUpData property přiřazen Field Notes do Label1.Caption. Zároveň je navíc DB polem Category naplněn TListBox.
Jak budeme měnit vybraný záznam v ListView, bude se aktualizovat Label1 o popis. Výběr je podle mne jednosměrný, tj. změna výběru u ListView způsobuje změnu u navěšené akce, nikoliv změnu ve zdroji dat (v podstatě tedy něco jako unidirectional dataset) - pokud se pletu, tak mne opravte.
Ale to není to co si představujeme pod pojmem FishFact, tj. při výběru záznamu se mění pozice v tabulce - kurzor.
Co by to bylo za DB tutoriál v Delphi bez klasického FishFact?
Vytvoříme novou aplikaci a na formulář dáme opět ClientDataSet a zvolíme Bind Visually. Na seznamu polí vybereme pravým tlačítkem Link to New Control a objeví se seznam polí.
Pro hvězdičku (což značí celý dataset) je nabízen TStringGrid a tak ho hned využijeme. Zároveň přidáme TImage ke Graphic a navíc jako bonus TBindNavigator (třeba i přes paletu komponent). Pozor - nejedná se o starý TDBNavigátor, ale o novou komponentu.
Pro výběr polí u gridu proveďte přes pravou myš výběr položky menu Columns Editor…, jinak bude zobrazeno vše.
A tak v podstatě několika kliknutími je vytvořena jednoduchá DB aplikace.
Takto můžeme přidat i editační prvky, např. TEdit pro Common_Name. Přidané pole je automaticky bidirectorional (obousměrné). Je to symbolizováno šipkou na obou koncích.
Změnou na linkDataToControl vytvoříme jednosměrný link.
Vytvoříme novou FireMonkey HD aplikaci, vložíme ClientDataset a u hvězdičky vybereme Link to New Control… a z nabídky vybereme TGrid.
Na konec nad TBindSourceDB v designeru vybereme z popup menu Add Navigator, čím se nám přidá navigátor a nakonec u TGridu můžeme nastavit ReadOnly.
Datum: 2012-11-27 23:17:00 Tagy: LiveBinding, XE3