Stringlist.Add

Verweis: Stringlisten
Uses: Classes
Eingabe: Text(String)
Ausgabe: ZeilenNummer(integer)
Funktion: fügt zu einer Stringlist eine neue Zeile hinzu.

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:

Beispiel 1

procedure TForm1.Button1Click(Sender: TObject);
const
  zeile3 = 'Dann können Sie mit "Add" die Zeile feststellen.';
var
  Liste: TStringList; //Verknüpfe Variable mit liste
  ZeilenNr: integer;
begin
  Liste := TStringList.Create; // Erstelle eine Liste
  Liste.Add('Wenn sie Wissen wollen, wie viele Zeilen,');
  Liste.Add('Sie bereits geschrieben haben.');
  // Kann auch indirekt angegeben werden
  // Nun speichern wir die Zeilennummer in eine Variable
  ZeilenNr := Liste.Add(zeile3);
  // Zeige die Liste im Memo an
  Memo1.Lines := liste;
  //Meldung um den nächten Schritt zu zeigen
  ShowMessage('Die letzte Zeile hat die Nummer: ' +
    IntToStr(ZeilenNr));
  // Gib wie immer den Speicher Frei
  Liste.Free;
end;

Die Funktion “Add” ist deswegen eine Funktion weil, diese einen Integerwert zurück gibt. Im Gegensatz zu “Append”. Append ist eine Procedure und gibt keinen Wert zurück. Genaueres gibt es hier. In dem Beispiel wird in der Variablen “ZeilenNr” die Nummer der letzten Zeile gespeichert. Da es sich um einen Integerwert handelt, mus dieser in einen String umgewandelt werden. Nur so Kann man diesen Wert in dem Meldungsfenster sichtbar machen.

Lazarus Rückgabewert von Stringlist.Add
Das Ergebnis von Stringlist.Add

Wie sie in dem Bild sehen wird der Wert 2 angezeigt. Da in einer Stringliste bei Null angefangen wird zu zählen, haben wir hier folglich als 3. Eintrag den Wert “2”. 0-1-2 drei Einträge. Sie müssen bei der Funktion “Add” den Wert nicht abrufen. Trotzdem sollte man “Append” statt “Add” verwenden, wenn man lediglich nur einen String in die Liste schreiben möchte. Der Befehl “Add” ist auch eigentlich nur in Verbindung mit der Parameter “Sorted:=True” interessant. Hier könne Sie festellen an welcher Stelle das neue Wort alphabetisch einsortiert wurde.