|
|
TDBCtrlGrid
DataControls paletta 14. rész
|
|
Példaprogram letöltése
12383 bájt
|
Ha az adatbázisból egyszerre több rekordot általunk megadott vezérlőkben szeretnénk megjeleníteni, akkor ideális megoldást nyújthat a TDBCtrlGrid komponens.
Ebben a komponensben egy táblázat celláiban jelennek meg a rekordok, melyek között a görgetősáv segítségével lapozhatunk.
A TDBCtrlGrid-re több komponenst is feltehetünk (TDBText, TDBEdit, TDBMemo, TDBImage, TDBCheckBox, TDBComboBox, TDBLookupComboBox). Ezek a komponensek automatikusan átveszik a TDBCtrlGrid-ben beállított DataSource property értékét. Ezt nem is tudjuk megváltoztatni. Az egyes vezérlőknél csak a megjelenítendő mezőt kell megadnunk a DataField property-ben.
A rekordok hozzáadásához és törléséhez funkció billentyűket is használhatunk. Beszúráshoz a Ctrl+Insert, törléshez a Ctrl+Delete billentyűket.
Ezeket le is tilthatjuk, ill. engedélyezhetjük az AllowInsert, valamint az AllowDelete metódusok hamisra, ill. igazra állításával.
Az adatbázis szerkeszthetőségét állíthatjuk be az EditMode logikai property-ben. Ha ez az érték True, akkor a TDBCtrlGrid-re helyezett vezérlőkön keresztül szerkeszthető lesz a DataSource-ban megadott adatbázis.
Szabályozhatjuk a megjelenítendő rekordok számát a táblázat sorainak és oszlopainak változtatásával. Erre két property áll rendelkezésünkre:
ColCount: oszlopok száma;
RowCount: sorok száma.
A példaprogramban ezeket egy-egy SpinEdit komponensben adhatjuk meg.
Ha a PanelBorder property-t Igazra állítjuk, akkor a komponensen látszani fognak a rácsok.
A PanelCount property-ből olvashatjuk ki az egyszerre megjelenített rekordok számát.
Ha azt akarjuk megtudni, hogy az aktuális rekord hányadik panelon található, akkor azt a PanelIndex property-ből olvashatjuk ki.
Minden rekord egy-egy panelre kerül. Ennek a panelnek a méretét szabályozhatjuk a PanelHigth, és a PanelWidth jellemzőkben.
A rekordok vízszintes, illetve függőleges elrendezésben jelenhetnek meg. Ezt az Orientation property szabályozza. A két érték: goHorizontal, goVertical.
Ha látni akarjuk, hogy melyik az aktuális rekord, akkor a ShowFocus logikai property-t állítsuk igazra.
A kijelölt rekord színét állíthatjuk be a SelectedColor property-n keresztül. Ezt a példaprogramban egy TColorDialog komponenssel oldottuk meg.
Ha a cellákat mi akarjuk kirajzolni, akkor használhatjuk a Canvas (TCanvas) property-t. Ezt legcélszerűbb a TDBCtrlGrid komponens OnPaintPanel eseményében megírni, mivel ez az esemény minden egyes cella kirajzolásakor létrejön.
A példaprogramban egy SpinEdit-ben adhatunk meg egy árhatárt, melynél kisebb-egyenlő egységárú rekordok esetén megváltoztatjuk a panel színét.
A TDBNavigator-éhoz hasonló funkciókat valósíthatunk meg a Dokey metódus segítségével. Az eljárás Key paraméterében kell megadnunk a műveletet:
- gkNull: "üres járat" nem történik semmi;
- gkEditMode: az adatbázist szerkesztő módba kapcsolja;
- gkPriorTab: előző cellába lép;
- gkNextTab: következő cellába lép;
- gkLeft: bal cellába lép;
- gkRight: jobb cellába lép;
- gkUp: a felső cellába lép;
- gkDown: az alsó cellába lép;
- gkScrollUp: egy sort lapoz felfelé;
- gkScrollDown: egy sort lapoz lefelé;
- gkPageUp: ColCount * RowCount rekordnyit görget fel (egy lappal fel);
- gkPageDown: ColCount * RowCount rekordnyit görget le (egy lappal le);
- gkHome: az első rekordra ugrik;
- gkEnd: az utolsó rekordra ugrik;
- gkInsert: új rekordot szúr be az aktuális elé és az EditMode property-t True-ra állítja;
- gkAppend: új rekordot szúr be az utolsó rekord mögé és az EditMode property-t True-ra állítja;
- gkDelete: törli az aktuális rekordot, és az EditMode property-t False-ra állítja;
- gkCancel: szerkesztő módban érvényteleníti a változásokat, visszaállítja az eredeti értékeket, majd az EditMode property-t False-ra álítja.
A példaprogramban ezek közül a cellák közti lépegetést valósítottuk meg.
Mi is definiálhatunk adatbázishoz műveleteket (Action), ha az action-t kódból szeretnénk végrehajtani, ill. update műveletet kell kezdeményeznünk. Erre használhatjuk az ExecuteAction, valamint az UpdateAction metódusokat. Logikai értékkel térnek vissza. Ha Action változójukban megadott TBasicAction típusú műveletet sikerült kezelni, akkor értékük True, különben False.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2000 évkönyv 471. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|