AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anfängerfrage, TMemo & TStringlist

Ein Thema von MaGe · begonnen am 26. Jan 2007 · letzter Beitrag vom 27. Jan 2007
Antwort Antwort
MaGe

Registriert seit: 19. Jan 2007
18 Beiträge
 
#1

Anfängerfrage, TMemo & TStringlist

  Alt 26. Jan 2007, 18:52
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:
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;
Naja compilieren lässt sich das gebe ich dann im TMemofeld z.b.:
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.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Anfängerfrage, TMemo & TStringlist

  Alt 26. Jan 2007, 19:03
Hallo,

eine Liste erzeugst du durch den Aufruf des Konstruktors als Klassenmethode:

mylist := TStringList.Create; 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.

Delphi-Quellcode:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
MaGe

Registriert seit: 19. Jan 2007
18 Beiträge
 
#3

Re: Anfängerfrage, TMemo & TStringlist

  Alt 26. Jan 2007, 19:19
ah danke für die schnelle Antwort! Man lernt nie aus!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Anfängerfrage, TMemo & TStringlist

  Alt 26. Jan 2007, 19:30
Übrigens: Sobald du der Schleife überdrüssig wirst, kannst du das Kopieren auch so erledigen:

myList.Assign(Memo.Lines); 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.

Freundliche Grüße
  Mit Zitat antworten Zitat
MaGe

Registriert seit: 19. Jan 2007
18 Beiträge
 
#5

Re: Anfängerfrage, TMemo & TStringlist

  Alt 27. Jan 2007, 18:15
Das wäre meine nächste Aufgabenstellung an mich gewesen ob das nicht eleganter geht! Danke für den Tipp Marabu

Gruß

Ma.Ge
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz