HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

TValueListEditor komponens


Példaprogram letöltése

4710 bájt

A TValueListEditor komponens leginkább az Object Inspector property szerkesztőjéhez hasonló feladatot lát el. Ezzel a komponenssel viszonylag egyszerűen szerkeszthetők a név=érték elemeket tartalmazó listák.
A lista két oszlopot tartalmaz: az elsőben a nevek (Key), míg a másodikban az ezekhez tartozó értékek (Value) láthatók illetve szerkeszthetők. Az eseményeken keresztül értesülhetünk róla, hogy a felhasználó hozzáadott, módosított, vagy esetleg törölt-e egy értéket. Az értékeket alapvetően háromféleképpen módosíthatja: egyszerű begépeléssel, egy listából történő kiválasztással, vagy az értékhez rendelt gomb segítségével.

A komponensben a következő property-kkel találkozhatunk:
Cells
A Cells property-n keresztül lekérdezhetők az adott cellában lévő sztringek. A cella azonosítósához meg kell adni az oszlop és a sor számát, az alábbi módon:
v := ValueListEditor1.Cells[oszlop, sor];
ColCount
Az oszlopok számát adja vissza. Ez egy csak olvasható property, mivel a komponens csak két oszlopot tartalmazhat.
DisplayOptions
A komponens kinézetét befolyásoló tulajdonságokat adhatjuk meg ezen a property-n keresztül. A következő lehetőségeket kapcsolhatjuk be, illetve ki:
  • doColumnTitles: a lista fejlécét jeleníthetjük meg, vagy rejthetjük el. Ez az első sor, ami rögzített, és az oszlopok nevét tartalmazza.
  • doAutoColResize: ha be van állítva, akkor a komponens átméretezésekor az oszlopok szélessége is változik. Hogy hogyan, az attól függ, hogy a doKeyColFixed érték be van-e állítva.
  • doKeyColFixed: csak a doAutoColResize tulajdonsággal együtt van hatása. Ha be van állítva, akkor az átméretezésnél az első oszlop szélessége nem változik, ha pedig nincs, akkor a két oszlop szélessége egyenlő lesz.
DropDownRows
Azoknál az értékeknél, ahol egy listából választhatja ki a felhasználó a megfelelő értéket, megadhatjuk a legördülő lista látható elemeinek számát ezen a property-n keresztül.
ItemProps
Ez a property csak futási időben elérhető. Ezen keresztül adhatjuk meg, hogy az egyes értékeket milyen módon lehet szerkeszteni. A TItemProp osztályból származik, melynek a következő property-jei vannak:
EditMask
Egy maszkot adhatunk meg az érték szerkesztéséhez, ugyanúgy, mint a TMaskEdit komponensnél.
EditStyle
A szerkesztés módját határozza meg. Értékei a következők lehetnek:
  • esSimple: az új értéket a felhasználó gépeli be.
  • esEllipsis: az érték mező jobb szélén egy gomb jelenik meg. Használatához szükség van a OnEditButtonClick eseményre, amiről lejjebb részletesen írunk.
  • esPickList: a lehetséges értékek egy TStrings objektumban vannak tárolva, és ezek közül választhat a felhasználó.
KeyDesc
Ha nem azt a nevet szeretnénk az első oszlopban megjeleníteni, amivel azonosítjuk, akkor itt megadhatjuk, hogy mi jelenjen meg helyette. Ha például az érték neve Color (pl. „Color=clWhite”), és ez az érték a Form színét határozza meg, akkor a KeyDesc property-nek az értéke lehet például „Ablak háttérszíne”.
MaxLength
Az érték hossza maximum ennyi karakter lehet. Ha az értéke 0, akkor a begépelhető szöveg hossza az operációs rendszertől függ.
PickList
TStrings típusú objektum, amiben a mező lehetséges értékei vannak tárolva.
ValueListEditor1.ItemProps[8].KeyDesc:=’Font Name’;  
ValueListEditor1.ItemProps[8].PickList.AddStrings(Screen.Fonts);
ReadOnly
Igaz érték esetén a mező csak olvasható, a felhasználó nem tudja szerkeszteni.
KeyOptions
Az első oszlopra, vagyis az értékek neveire vonatkozó beállítások.
  • keyEdit: az érték neve szerkeszthető.
  • keyAdd: új sorok vehetők fel a listába.
  • keyDelete: a sorok törlésének engedélyezése.
  • keyUnique: nem lehet két egyforma nevű érték.
Keys
Egy tömb property, amin keresztül az értékek nevei elérhetők. Ha a DisplayOptions property-ben a doColumnTitles be van állítva, akkor a 0 a fejléc szövegét adja vissza, míg ellenkező esetben az első érték nevét.
ValueListEditor1.Keys[8]:=’Font name’;
RowCount
A listában szereplő sorok (értékek) száma, amibe beleszámítanak a rögzített sorok is (pl. a fejléc).
Strings
A listában szereplő sorok olvashatók ki ebből a TStrings típusú property-ből, „név=érték” formában.
TitleCaptions
TStrings típusú property, de minden esetben csak két sort tartalmaz. Az első sor az első, a második pedig a második oszlop fejlécének szövegét tartalmazza.
Values
Ezen a property-n keresztül a listában található értékeket érhetjük el a nevükkel azonosítva őket. Ha a property-nek értéket adunk, és a megadott név még nem szerepel a listában, akkor az automatikusan létrejön.
Memo1.Font.Size:=ValueListEditor1.Values[’FontSize’];
A TValueListEditor komponens eljárásai és függvényei a következők:
DeleteRow
A paraméterként megadott sorszámú értéket törli a listából.
FindRow
Megkeresi a megadott nevű értéket a listában, és annak sorszámát adja vissza. A függvénynek két paramétere van: az első a keresett érték neve, a második pedig egy integer típusú változó, amelyben a megtalált érték sorszámát kapjuk vissza. A függvény visszatérési értéke hamis, ha nincs a listában a keresett név.
var
  i: integer;
...
  if ValueListEditor1. FindRow( 'FontName', i) then ShowMessage( ValueListEditor1.Strings[i-1]);
InsertRow
Ezzel a függvénnyel új értékeket vehetünk fel a listára. Az első paraméter a név, a második az érték, a harmadik pedig egy logikai érték. Ha az utóbbi paraméter értéke igaz, akkor az aktuális sor után, ha pedig hamis, akkor az aktuális sor elé lesz beszúrva az új sor. A függvény visszatérési értéke az új sor száma.
  i:=ValueListEditor1.InsertRow(’Date’, DateToStr(Now), true);
  ValueListEditor1.ItemProps[i-1].KeyDesc:=’Dátum’;
Refresh
Az eljárás frissíti a komponenst. Akkor használjuk, ha programból változtattunk az értékeken.
RestoreCurrentRow
Törli az aktuális sor változtatásait, vagy új sor felvétele esetén az új sort. Hatása ugyanaz, mint amikor a felhasználó leüti az ESC billentyűt.
OnEditButtonClick
Az esemény akkor következik be, amikor a felhasználó az érték melletti gombra kattint, vagy lenyomja a Ctrl+Enter billentyűket. Ez csak azoknál a soroknál következhet be, ahol az ItemProps tulajdonságoknál az EditStyle property értéke esEllipsis. A Row property-ből kiolvasható az aktuális sor sorszáma, ebből tudhatjuk meg, hogy melyik értéknél kattintott a felhasználó a gombra.
OnGetPickList
Ez az esemény akkor jön létre, amikor egy olyan sorra kerül a fókusz, aminek az ItemProps tulajdonságoknál az EditStyle property értéke esPickList. A KeyName paraméterben megkapjuk az érték nevét, ez alapján azonosíthatjuk azt. A Values paraméter egy TStrings típusú objektum, amiben megadhatjuk a lehetséges értékeket.
OnStringsChange
Az esemény akkor jön létre, amikor a név, vagy az érték megváltozott. Akkor használható, ha a megváltoztatott értékekre azonnal szükségünk van.
OnStringsChanging
Az előzőtől abban különbözik, hogy ez még a sztringek megváltoztatása előtt jön létre.
OnValidate
Az esemény akkor következik be, amikor az éppen szerkesztett mezőből kilépünk. Ekkor az esemény paramétereiben megkapjuk a megváltoztatott cella pozícióját, a nevet és az értéket. Az eseményben ellenőrizhetjük a bevitt adatokat, és szükség szerint akár módosíthatjuk is azokat.

Cikksorozat

#IDKategóriaCikk címeSorozat
3047WindowsAz XML bemutatása1. rész
3059WindowsAz XML bemutatása2. rész
3068WindowsAz XML bemutatása3. rész
3077WindowsAz XML bemutatása - deklarációk4. rész
3086WindowsAz XML bemutatása - MSXML, XSLT5. rész
3094WindowsAz XML bemutatása - DTD6. rész
3105WindowsXML adatok megjelenítése Excel-ben7. rész
3114WindowsDokumentum hivatkozások az XML-ben8. rész
3123WindowsXML adattípusok9. rész
3132WindowsXML adatok HTML oldalakon10. rész
3141WindowsXML Notepad11. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 650. 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!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |