Univerzální ukládání konfigurace do DB
Rubrika: Delphi
Píšete menší aplikace s oknem konfigurace a už vás nebaví vždy znova psát ukládací procedury? V následujícím článku vám představím řešení pomocí univerzální ukládací procedury, kterou již nebudete muset přepisovat. Řešení které vám tu předvedu řeší dva základní problémy:
V obou případech následuje hledání a úprava vaší ukládací a načítací proceduru patřičným způsobem. Pokud jde o větší množství parametrů, které chcete ukládat, je to většinou velmi zdlouhavé a otravné. Pokusil jsem setohoto problému zbavit jednou provždy a vytvořil jsem Frame který obsahuje vše potřebné pro ukládání a načítání vybraných typů jednoduše po stisku tlačítka. Základní princip této univerzální procedury pro ukládání a načítání konfigurace nějakého okna je založen na vlastnictví komponent. Proceduře která provádí danou akci předáváme vlastníka těchto komponent jako parametr. Jde většinou o TForm nebo TFrame. Vlastní procedura ukládání pak prochází všechny komponenty vlastníka a u vybraného typu komponenty ukládá námi zvolenou vlastnost, název a typ komponenty do databáze. Zpětně při načítání konfigurace se dohledá název komponenty a podle typu se z databáze nastaví některá její vlastnost. |
|||||||||||||||
|
|||||||||||||||
Na komunikací s databází jsem raději použil komponentu TQuery pro případ, že by bylo třeba to někde aplikovat proti nějaké větší SQL databázi. Ostatní komponenty slouží pro vizualizaci a zobrazení informací o průběhu načítání nebo ukládání.Ze základního popisu principu procedury je již patrná struktura databáze, do které budeme konfiguraci ukládat. Pro ukládání jsem využil Paradoxové tabulky. Struktura je následující: | |||||||||||||||
|
|||||||||||||||
Vhodné je uložit tuto tabulku vždy v podadresáři DB vlastní aplikace kde ji procedury FrmNasrav také hledají. Tedy pokud máte aplikaci uloženou např. v C:ProgramFilesAplikace měla by databáze tedy ležet v adresáři C:ProgramFilesAplikaceDB.
Do této databáze budeme ukládat následující vlastnosti vybraných typů
|
|||||||||||||||
Pro názornost a prezentaci síly si vytvořme následující jednoduchou aplikaci. | |||||||||||||||
Na hlavní formulář (které představuje okno konfigurace) umístěme např. dvě komponenty TEdit, dvě TCheckBox, jednu komponentu typu TStringList a nakonec komponentu TRadioGroup. Tyto komponenty jsou umístěné na pravou stranu hlavního formuláře. Na levé straně pak vložíme frame FrmNastav, který se bude starat o vlastní ukládání a načítání. Nyní stačí pouze přeložit a pustit. | |||||||||||||||
|
|||||||||||||||
Pokud na hlavním formulář provedete nějaké změny nebo přidáte další komponenty, nemusíte se již v hlavní aplikaci dále starat o jejich ukládání a načítání a měnit tyto procedury. | |||||||||||||||
V současné době tento frame používám jen pro jednoduchá okna. Nelze s ním tedy ukládat více oken ani příliš složitá okna obsahující např další framy. To však můžete všechno vylepšit sami. K dispozici dávám zdrojové kódy jak od FrmNastav, tak od celé Testovací aplikace (včetně DB) napsané v D6. Přeji hodně zdaru při vašem vývoji. |
|||||||||||||||
Jiří Provazník |
|||||||||||||||
Datum vydání: 11.07.2002 | Zobrazeno: 3520
Permanentní odkaz: Univerzální ukládání konfigurace do DB