Stringlisten

Create erstellt eine Stringliste
Clear löscht die Einträge der Liste
Add fügt eine neue Zeile in die Stringlist ein.
Free gibt die Liste wieder frei. Der reservierte Speicher wird freigegeben.

Andere Methoden

Name:Beschreibung:
Stringlist.Addfügt zu einer Stringlist eine neue Zeile hinzu. Die Nummer der hinzugefügten Zeile kann abgefragt werden.
StringList.AddStringsfügt zu einer Stringlist mehrere Zeilen hinzu.
StringList.CaseSensitiveEin Schalter um nach Groß- Kleinschreibung zu unterscheiden oder auch nicht.
Stringlist.Countmit dieser Methode können Sie die einzelnen Zeilen einer Stringliste Zählen.
StringList.CustomSorterwartet einen Zeiger auf eine angegebene Sortierfunktion und nimmt 2 Zeilen auf. Als Ergebnis wird nach programmierter Vorgabe sortiert.
Stringlist.DuplicatesBeschreibt die Vorgehensweise, wie mit doppelten Einträgen umgegangen werden soll.
StringList.ExchangeWechselt die beiden unter Index angegebenen Zeilen untereinander aus.
Stringlist.FindSucht in einer sortierten Stringlist nach einem Wort und gibt als Ergebnis ja oder nei sowie den Fundort zurück.
Stringlist.IndexOfSucht in einer Stringlist nach einer Zeile die mit dem vogegebenen Text übereinstimmt und gibt die Position der gefunden Zeile zurück.
Stringlist.MoveSchiebt die angegeben Zeile an die neue Position.Dabei werden die folgenden Zeilen verschoben.
StringList.OnChangelöst ein Ereignis aus nachdem eine Liste geändert wurde.
StringList.OnChanginglöst ein Ereignis aus bevor eine Liste geändert wird.
StringList.SortStylegibt an, wann eine Sortierung stattzufinden hat.

Erstellen – Freigeben – Grundlagen

Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie einen TButton und TMemo auf die Form. Doppelklicken sie auf den Button und ersetzen Sie das Ereignis durch folgenden Quelltext:

procedure TForm1.Button1Click(Sender: TObject);
const
  zeile3 = 'Dies ist die Dritte Zeile die bereits hier erstellt wird.';
var
  Liste: TStringList; //Verknüpfe Variable mit liste
begin
  Liste := TStringList.Create; // Erstelle eine Liste
  Liste.Append('Dies ist die erste Zeile.');
  Liste.Append('Hier ist bereits die 2. Zeile');
  // Kann auch indirekt angegeben werden
  // Als Konstante oder Variable
  Liste.Append(zeile3);
  // Zeige die Liste im Memo an
  Memo1.Lines := liste;
  //Meldung um den nächten Schritt zu zeigen
  ShowMessage('Beim Klick wird das Memo gelöscht.');
  //Eigentlich löschen wir die Liste
  Liste.Clear;
  // Aber wenn wir diese Liste kopieren, dann
  // kopieren wir eine leere Liste
  // Zeige die leere Liste im Memo an
  Memo1.Lines := liste;
  // Gib den Speicher Frei
  Liste.Free;
end;

Die Stringlist ist ein Objekt und kein Record. Weil das so ist kann man viele weitere Methoden, Proceduren und Funktionen abrufen. Da dieses Objekt nicht automatisch erstellt wird, müssen wir es erstellen. Die Stringlist ist auch ein Teil der Memo-Komponente. Diese wird allerdings automatisch beim ziehen der Koponente auf das Formular erstellt. Da eine Stringlist nicht sichtbar ist und auch nicht als Icon auf das Formular gezogen wird müssen wir diese mit der Methode “Create” erstellen. Nach dem wir die Stringliste erstellt haben, können wir diese mit der Procedure “Append” erweitern. Jedes “Append” ist eine Zeile. Ein “Append” ohne Inhalt, ist wie ein “Return” Auf Ihrer Tastatur der Coursor geht zur nächsten Zeile. Der Befehl “Clear” löscht alle Zeilen in einer Stringlist. Danach sind auch alle Zeilenvorschübe verschwunden und bei einem Klick in das TMemo befindet sich der Coursor an der obersten Stelle.

Warum freigeben.

Alles was wir mit dem Befehl “Create” erstellen müssen wir mit “Free” auch wieder freigeben. Es gibt zwar kein Fehler, aber wenn wir unser Programm öfter starten und dann beenden oder die Unit mit der erzeugten Stringlist häufiger aufrufen, dann verkleinern wir mit jedem Aufruf unseren freien Arbeitsspeicher. Es gibt genug schlechte Programme die das machen. deswegen müssen Sie den Rechner nach einer Woche oder weniger neu starten. Je nachdem wie schlecht die Programme sind und wie häufig Sie diese neu starten. Der Rechner wird dann immer langsamer weil er mittlerweile eine Auslagerungsdatei benutzt um noch zu funktionieren. Hier ist der Zugriff von der Festplatte etwas langsamer. Irgendwann kommt dann die Fehlermeldung bei der Adressierung des Speichers. Sie wollen sich doch nicht für einen verzweifelten Anwender verantwortlich zeigen. 🙂