A TStrings osztály egy alap osztálynak számít, ami számos absztrakt metódust tartalmaz. Nem használhatjuk közvetlenül. Egy olyan osztálynak számít, amit csak örökítés útján, vagy property-ként használhatunk fel. Felhasználásakor az absztrakt metódusokat felül kell írnunk.
Az osztály szövegek tárolására alkalmas. Ezt a tulajdonságát használjuk ki legtöbbször. Új sor hozzáadásához az Add metódust használhatjuk.
ListBox1.Items.Add(’Valami’);
A szövegek mellé azonban értékeket is rendelhetünk. Erre szolgál a Values property.
property Values[const Name: string]: string;
A property egy tömb, amely a TStrings elemeit az egyes sorokban szereplő sztring értékek alapján azonosítja, ezt kell megadnunk a Name paraméterben.
A property segítségével lekérdezhetünk, vagy beállíthatunk egy megadott sztringhez tartozó értéket. Ha az értékadás során olyan sztringre hivatkozunk, amely még nem szerepel a listában, akkor az utasítás létrehoz egy új elemet.
Sztringet és értéket egy lépésben is hozzáadhatunk a listához, az Add paranccsal. Ilyenkor nincs más dolgunk, mint használni az elválasztó karaktert.
ListBox1.Items.Add(Edit1.Text+ListBox1.Items.NameValueSeparator+Edit2.Text);
A sztring és a hozzá tartozó érték egymás mellett jelenik meg a listában. A kettőt egyetlen karakter választja el egymástól. Ezt a karaktert, név-érték elválasztónak nevezzük. Ez alapján tudja meghatározni a Delphi, hogy mi tartozik a sztring részhez és mi az, ami értékként szerepel.
A Delphi 7 előtti verziókban az elválasztó jel az egyenlőség jel volt.
A Delphi 7-es verziójában a TStrings osztályt bővítették, egy újabb property-vel, amelyben megadhatjuk, hogy mi legyen az elválasztó karakter. Ez a property a NameValueSeparator.
property NameValueSeparator: Char;
Ha módosítjuk a property értékét, az nincs hatással az előzőleg felvitt sztringekre, csak az újonnan felvitt elemekre. Viszont a keresésnél is az új értéket használja a Delphi, így a korábbi elválasztót tartalmazó elemek feldolgozása nem lesz megfelelő.
A Values property esetében láthattuk, hogy a sztringekhez, nevük alapján rendelhettünk értékeket. Ez azonban felvet egy olyan problémát, hogy mi van akkor, ha egy sztring többször szerepel a listában. Ennek a problémának a megoldására, a Delphi 7-ben megjelent a ValueFromIndex property. Ezen keresztül a listaelemekre indexük alapján hivatkozhatunk. Az első elem indexe itt is 0.
property ValueFromIndex[Index: Integer]: string;