Fejlesztés db-aware alkatrészek

A szerkezet a DB-Aware komponenseket
osztály TDataLink
Válassza ki, hogyan szervezi adatcsatorna.
A fejlesztés az alkatrészek, amelyek megjelenítik adathalmaz
A fejlesztés az alkatrészek, az adatok módosítását beállított






Fejlesztés db-aware alkatrészek

A szerkezet a DB-Aware komponenseket

Végezni ezt a transzformáció csak arra van szükség, hogy tartalmazza a meglévő komponens osztály további mezőt és írjon egy pár módszereket, amelyek kapcsolatot jelent egy komponenst és egy adathalmazt.

Más szóval, hogy hozzon létre egy DB-A, meg kell választani a legmegfelelőbb eleme a követelményeknek, majd leírni a viselkedési modell kötegek komponens adatokat. Meg kell jegyezni, hogy nincsenek különleges követelmények a meglévő alkatrész nem látható, ez lehet egy grafikus vagy ablakvezérlő, nem vizuális komponens, a párbeszéd és így tovább.

  • alkatrészek csak kijelző adatok
  • komponensek módosítására képes adathalmazokat.

Természetesen, az első típusú komponensek elrendezett könnyebb, mint a második.

Általában, a rendszer építésére a komponensek, hogy adatokkal dolgoznak, akkor az alábbi képlettel ábrázolható (1. ábra):

Mi most úgy a végrehajtás DataLink. Mert az ő, van egy megfelelő osztály TDataLink, ő szentelte a következő részben.

osztály TDataLink

TDataLink osztály az alap osztály egy hierarchikus osztályok miatt tárol. Osztály biztosítja a kommunikációs csatornát az adatbázis írási / olvasási.

Ez az osztály leírt DB modul és a felület része a következő (magán-szakasz elhagyható):

Közlemény az ellenőrző adatállomány kapcsolódó fő kapcsolatok - slave.

Válassza ki, hogyan szervezi adatcsatorna.

Mint már említettük, létezik egy sor készen áll kommunikációs csatornák különböző célokra. Így a szervezet a komponens kapcsán az adathalmaz lehet mindig készen áll, hogy az osztály. Ebben az esetben, ha létrehoz egy alkatrész, meg kell adnia rakodók dinamikusan kijelölt adatcsatornán eseményeket.

Nézzük meg, hogyan lehet megvalósítani ezt a fogalmat az egyik leggyakrabban használt osztályok - TDEdit «csonka” változata a leírását, amelyet az alábbiakban:

Mint már említettük, a kommunikációs csatorna jön létre a kivitelező. Esemény kézbesítési módok adatsor megvalósítva eseménykezelõkkel.

Amint látható a leírás a tervező, a komponens széles körben alkalmazott dinamikus hozzárendelésére események, ami nem egy jó szokás programozni alkatrészek elvileg. Azonban ebben az esetben a mező bizalmasan kezeljük, és FDataLink hozzárendelése események a felhasználó nem fog sikerülni.

List TFieldDataLink felsorolt ​​események az alábbi táblázatban:

adatok által okozott változások az alábbi okok miatt: - Az átmenet egy új rekordot, vagy stolbtsu- adja szerkesztés adat- meghatározott DataSource tulajdonság megváltozik mód vagy DataField -Recovers régi értékeket hívja Mégsem

A be- és kimenetek / a szerkesztő az adathalmaz mód

Vedd a változásokat az adatbázisba

Megváltoztatása a tulajdonságok a csatlakoztatott aktív adatcsomag







Egyszerűsége miatt, ez a módszer a szervezet DB-aware-komponensek optimális létrehozása meglehetősen egyszerű megoldás, de számos hátránya van, többek között:

  • Az osztályok öröklött viselkedés módosítása bonyolult alkatrész;
  • Ez a kialakítás összetett ferösszetevőt elég nehéz olvasni a kódot, mert a kód társított adatok feldolgozását, és a kódot közvetlenül a komponens számított egy entitás.

Egy másik közös megközelítés az, hogy írjuk meg a linket a komponenseket. Ez sokkal időigényes, de megéri. További példák az e szakasz bizonyítani fejlődését DB-Aware-komponensek ezen a módon.

A fejlesztés az alkatrészek, amelyek megjelenítik adathalmaz

Az ilyen típusú fajta a komponensek a leginkább könnyű megérteni, de a fejlődés megköveteli a világos megértése a részleteket a kommunikációs csatorna között az adathalmaz és az alkatrész.

A standard könyvtár komponensek Delphi egy érdekes ellenőrzés - DBRadioGroup, mint értékek rádiógombjainak használja a lista típusú TStrings, amely lehet inicializálni mind a tervezési fázisban, és a fejlődési szakaszban. Azonban elég gyakran (például a fejlesztési vizsgálati rendszerek), meg kell adnia az adatbázisok listáját, hogy az alkatrész nem képes megtenni.

Fogjuk írni RadioGroup-összetevő, amely kitölti a lista a rádió gombok adatai szerint a területen a táblázatban.

Most tekintsük a végrehajtását az osztály miatt az adatokat:

A komponens kell két üzemmódban működnek - frissítve rádiógombot listáját, és a munka közvetlenül a felhasználó komponens. Ezért szükséges, hogy világosan meghatározza, amikor frissíti a listát a gombok. A példánkban csináljuk csak nyitásával / zárásával az adathalmaz, valamint a terület módosítása, amelynek értékeit veszik, mint az értékek a rádió gombjait.

RecordChanged módszer megköveteli elég óvatos kezelése - ez az úgynevezett nagyon gyakran (ha mozog az egyik rekordot egy másik, állapotának megváltoztatásával az adathalmaz, stb.) Bizonyos értelemben ez a módszer hasonló a szolgáltatás vezérlő egér mozgását eseményekre, mivel mindkettő kiszolgálására rengeteg eseményt, és természetesen, a munka nagyon gyorsan.

Most itt az ideje, hogy vizsgálja meg az összetevők, amelyeket az információ megjelenítésére:

Megjegyzi, hogy a kód:

  1. Adatforrás tulajdonságot komponens valójában - az azonos nevű tulajdonság TDataLink
  2. DB-Aware alkatrész jár szülő osztály, szalagok, és így létrehozza és elpusztítja azt.
  3. Ahhoz, hogy disable / enable TDataLink kell hívni módszerek DisableControls / EnableControls adatbázisba.

Megjegyzések a szabályok az etikett:

  • Származtatva TDataLink osztálynak tartalmaznia kell a nevét a komponens, ahol alkalmazzák a címben, valamint az elsődleges funkciója.
  • Az adatforrás nevét, valamint ingatlan adatait tartalmazó mező nevét, meg kell próbálnia neveket használni, amelyek már a de - facto, de ezt úgy kell tekinteni közötti kapcsolat adatforrások és a mezők. (Adatforrás - DataField, ListSource - ListField).

A fejlesztés az alkatrészek, az adatok módosítását beállított

Korábban megnéztük a komponenseket, hogy képes megjeleníteni az adatokat a készülék, most nézzük meg, hogy hozzon létre még egy összetevő, amely módosítja az adathalmaz.

Ha az adathalmaz nem szerkesztési módban, az alkatrész nem lehet aktív, de szükség van rá, hogy szinkronizálja a helyzet az adatmező értékét állítsa a kiválasztott gombot:

Ha ugyanaz az adathalmaz szerkesztési mód, vagy egy új, belépő alkatrész a következő alakú, és automatikusan adja meg a kiválasztott értéket az adatmezőben:

Ehhez be kell vezetnünk egy másik adat csatorna már összpontosított adatmódosítás.

Ennek alap osztály egy része vegyen már kialakult az előző példában, egy osztály, amely biztosítja az alapvető adatok megjelenítési funkció.

Nézzük meg a végrehajtás a kommunikációs csatornát adatmódosítás:

Különösen figyelemre méltó az alábbi módszerekkel:

eljárás TmmRGWriteDataLink.EditingChanged - reagál a bekapcsolását / kikapcsolását az üzemmód adatállomány (betét szerkesztés) iperevodit eleme a módosítás adathalmaz módban.

Most folytassa a figyelmet a komponensek:

Ebben az esetben már csak egy probléma - TCustomRadioGroup első látásra nem egy módszer lenne a vezérlő felhasználói eseményeket.

A megoldás, hogy tanulmányozza a forráskód TCustomRadioGroup. Fordítson különös figyelmet a végrehajtását a módszer Click, amely ténylegesen teljesíti a szükséges intézkedéseket a számunkra.




Kapcsolódó cikkek