![]() |
Anfängerfrage, TMemo & TStringlist
Moin, moin,
ich lerne so abends nebenbei seit letzer Woche Delphi und stoße natürlich als Anfänger immer wieder auf kleine Probleme. :) Ich hab mir in den Sinn gesetzt aus einem TMemo-Feld den eingegeben Inhalt in ein TStringList zu schreiben und wieder zurück. Leider klappt das nicht so wie ich mir das Vorstelle und nach einer etwas längeren Woche (Gehirn etwas ausgepowert) und einer kurzen Suche hier im Forum bin ich nicht klüger.
Delphi-Quellcode:
Naja compilieren lässt sich das gebe ich dann im TMemofeld z.b.:
procedure TForm1.Button1(Sender: TObject);
var mylist : TStringList; i : Integer; begin mylist.Create; if Memo1.MaxLength >0 then begin for i:= 0 to Memo1.MaxLength do begin mylist.add(Memo1.Lines[i]); end; end; end; alpha beta delta usw. ein dann bekomme ich bei MaxLength 0 Lass ich mir aber alles als Memo1.Text geben bekomme ich einen String, habs mir auf ein Label ausgegeben. Jetzt steh ich aber auf der Leitung (wieder einmal), warum bekomme ich bei Lines nix raus und warum ist da MaxLength 0? Hat da einer noch am Freitag abend lust mir (wieder mal) von der Leitung zu helfen? Gruß Ma.Ge. |
Re: Anfängerfrage, TMemo & TStringlist
Hallo,
eine Liste erzeugst du durch den Aufruf des Konstruktors als Klassenmethode:
Delphi-Quellcode:
Nicht MaxLength, sondern Memo.Lines.Count liefert dir die Anzahl an Zeilen im Memo. Diese werden von 0 bis Count - 1 indiziert. Und wenn du deine Liste als lokale Variable deklarierst, dann ist sie nur innerhalb deiner Prozedur erreichbar. Gib sie deshalb am Ende auch wieder frei.
mylist := TStringList.Create;
Delphi-Quellcode:
Grüße vom marabu
procedure TForm1.Button1(Sender: TObject);
var myList : TStringList; i : Integer; begin myList := TStringList.Create; for i:= 0 to Pred(Memo1.Lines.Count) do mylist.add(Memo1.Lines[i]); ShowMessage(myList.Text); myList.Free; end; |
Re: Anfängerfrage, TMemo & TStringlist
ah danke für die schnelle Antwort! Man lernt nie aus! :D
|
Re: Anfängerfrage, TMemo & TStringlist
Übrigens: Sobald du der Schleife überdrüssig wirst, kannst du das Kopieren auch so erledigen:
Delphi-Quellcode:
Das wäre dann dein erster Vorstoß in die Gefilde der Objekt-Orientierung. Du solltest alles was dir unbekannt vorkommt in der Delphi Online-Hilfe nachschlagen.
myList.Assign(Memo.Lines);
Freundliche Grüße |
Re: Anfängerfrage, TMemo & TStringlist
Das wäre meine nächste Aufgabenstellung an mich gewesen ob das nicht eleganter geht! Danke für den Tipp Marabu
Gruß Ma.Ge |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz