Delphi master (dokumentáció, forráskód letölthető)

A keretek használata, hogy írjon „helyes” alkalmazás

Nem tudom mi van, de én egyszer gyakran találkoztak a következő helyzetet. A fejlesztés a meglehetősen nagyszámú projekt képez idővel növekedni. És tovább, annál rosszabb. De még ez sem volt nagy probléma, amíg én dolgoztam magam - még maga is fegyelmezett - vehetik Egységes elnevezési formák, módszerek, változók. De miután elkezdtem dolgozni, mint egy csapat, a probléma vált a teljes magasságban - újratervezés vált gyakran csökken „felülírja az összes”, hiszen minden programozó, hogy megértsék a „helyes írásmódját a kód” .Egy néhány gondolat, úgy döntöttem, hogy hozzon létre egy fajta „motor” amely megkönnyíti az írás meglehetősen nagy projekteket. Ennek alapján a motor, tettem a következő alapelveket:
1. Kivétel nélkül minden, a tárgyak, hogy működjön együtt az adatbázist kell adatokat egységeket, az objektumok száma az adatbázisban nem haladhatja meg egy bizonyos kritikus határt (nekem - akár 50 objektum) -, akkor megszűnik nehéz navigálni;
2. Minden műveletet az adatokat az adatbázis is le kell írni az adatokat modulok az adott esemény vagy Akciólista;
3. A fő formája nem tartalmazhat programkódot a mód, csak a hívás mód és a hívás elvont közös minden módszereket, amelyek felülírják az egyes megfelelő módot.
4. A felhasználói felület az összes módot kell teljesen egységes.
5. A rendszer kell a „helyes” megváltoztatni a fő ablakban.
6. A rezsim nem tudni, hogy léteznek más rendszerek és egyéb általános, a rezsim csak azok a fő formája, és az adatokat modulokat.
7. Az adatok modulok nem tud a létezéséről rezsimek.
8. profilok dinamikusan kell létrehozni, hogy ne vegye fel túl sok memóriát.

Legalkalmasabb kereteket valósítani a feladatot. Kereteket használ, sikerült létrehozni egy egységes felületet, mert mi volt egy fő formája, amely egyszerűen megváltoztatta kép - „képkockák”. Azonban az első végrehajtás eredménytelen volt, mert dolgozni specifikus funkciók kénytelen csinálni minden képkocka a fő formája és válthatsz köztük a tulajdonság látható.

Ezen kívül a fő formája kód lett terhelve, hogy a funkciók határozza meg, melyik módban jelenleg betöltve, és ezért kéri az eljárás módot.

Ezért úgy döntöttek, hogy távolodjon el a „nehéz örökséget” :) procedurális és használja az alapelveket a PFSZ.

Sőt, kiderült, hogy az összes képkocka lehet (sőt, kell), hogy az örökösök az alap keretet. A kód az alábbiakban az alapkeret.

Mint látható, sok a funkciók az alapkeret vissza TFunctionResult értéke. Ez a szerkezet határozza meg UnitConstTypes_etc modul, amelyben a jövőben kerül majd más típusú konstansok. Funkciók vissza zászló művelet sikeresen befejeződött, és a hiba esetén - a hibaüzenetet.

Ez, természetesen, a sablont. Az én jelenlegi alkalmazások fent említett funkciók több, mint elég. Azonban, ha kell hozzá néhány konkrét módszert, hogy egyértelmű, nem okoz nehézséget.

Ezen túlmenően, a nevezett eljárással eljárás exportáló adatok SaveToHTML rács aktuális kerethez. Ez a módszer határozza meg MyDBGrid modulban.

Mi jár a kijelző keretek a fő alkalmazás formája.

A fő alkalmazási forma Van valami ehhez hasonló: a bal oldalon - fa menü alján a napló alkalmazása, a tetején - az eszköztár, a fennmaradó tér üres, tart egy panel képkocka jelenik meg.

Először hozzon létre egy stílust

Most kell, hogy hozzon létre egy megfelelően működő formában haza. Használata felhasználási hozzá UnitFrameBase modul, nyilvánosságra hozza a szakasz az objektum osztály mainframe TFrameBase. Most meg kell írni egy függvényt, amely megjeleníti a megfelelő keret megnyitásakor a kívánt üzemmódot.

Hogyan nevezzük ezt a funkciót? Hozzon létre egy újabb üzenet - hívja szűrési eljárások.

Param1 és param2 létrehozásához használt a szükséges vizsgálatokat ugyanolyan típusú kereteket. Most meg kell írni egy felvezető FILTER_EVENT üzenetét.

Mi jár a kijelző menükeret. Mivel a forrás XML fájl segítségével a tároló menü fa struktúra (ez akkor hasznos, ha az alkalmazás nem használható adatbázis), a táblázat használata az alkalmazás adatbázis, vagy tartsa a szerkezet közvetlenül az alkalmazásban (nagyon kényelmes csinálni dxTreeList származó Developer Express, de ezeket a komponenseket fizetett) . Mivel minden az én használt adatbázis-alkalmazások (Oracle vagy a Firebird adatbázis-kezelő rendszert többnyire), úgy döntöttem, a második lehetőséget. Készítsen táblázatot a következő szerkezetű

Amellett, hogy integritásának biztosítása érdekében a fa, számos kiváltó és korlátait társított táblázat. Teljesen tábla szerkezetét és szövegek korlátozások akkor pomotret a forrás adatbázis.

Ebből relációs tábla viszonylag könnyű létrehozni egy fa egy rekurzív eljárás, amelynek szövege is megtekintheti a forráskód tárol. Megjegyzendő, hogy az elvek ennek az eljárásnak kell venni a „World of InterBase” könyv.

Anélkül, hogy a részleteket az építőiparban a fa a szerver Vegyük észre, hogy a kliens alkalmazás, akkor lehet építeni egy fa egy menetben az adathalmaz.

Fa mapping eljárás az alábbi. Először határozza meg a szerkezet a menüpontok

Természetesen a szerkezet a menüpont egybeesik az adatbázis tábla. Hozzunk létre a következő menü funkciók

Processzor változás menüpontot fog kinézni a következő

Hasonlóan a többi. Ezen kívül a fő formája is létre kell hozni a közös elemek szűrésére. Ezek lehetnek olyan elemek szűrésére dátum, a fizetési számla, stb Azonban a processzor változik Ezek az elemek csak üzenetet küldeni CX_FILTER. Hogyan dolgozza fel a kapott üzenetet, majd megoldja az adott keretet.

Emellett aforenamed fő formája kell regisztrálni minden típusú kereteket. Ez úgy történik, részben inicializálási funkció RegisterClasses.

Most kell, hogy hozzon létre a kereteket. A váz kell örökölni elvont fent létrehozott keret TFrameBase. Ezt követően, akkor kell felülírni a kívánt üzemmódot.

A legegyszerűbb esetben van szükség, hogy felülbírálja a keret kivitelező a keret, amelyben a felülírás leírás, ami SetDesc adatbázisba, és meghatározza az aktuális keret kiváltó SetFrameCurrentDataSet. Ha a keret egy rács, szükséges, hogy újra GetMainGrid függvény visszatérési a helyes.

Így, hogy egy új mód a legegyszerűbb esetben regisztrálni kell csak 9 sornyi kódot!

Azonban a változás (javulás) a keret egyáltalán nem vezet semmilyen szerkesztése a fő formája. Az adatok jellemzői okoz csak a megfelelő módszerek DataSet. A felvezető, ami okozhat további modális formában vagy párbeszéd.

Teszt alkalmazás kódját, demonstrirueschego ismertetett munka keretek nahodetsya itt.

Kapcsolódó cikkek