Übergabe Tstringlist

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Eradikator
Beiträge: 33
Registriert: Sa 8. Jun 2013, 19:45

Übergabe Tstringlist

Beitrag von Eradikator »

Hallo, ich habe versucht mit folgendem Quelltext eine Tstringlist
beim Aufruf einer Prozedur zu übergeben und es kam die Meldung: List index (0) out of bounds.

Code: Alles auswählen

procedure tauschen(var moin: tstringlist);
begin
 moin := Tstringlist.create;
 //moin.AddStrings();
 moin.Exchange(0, 1);
 moin.Free;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 x : tstringlist;
begin
 x := Tstringlist.create;
 memo2.Clear;
 memo2.Lines.AddStrings(memo1.lines);
 //memo2.Lines.Exchange(0,1);
 x.AddStrings(memo2.lines);
 tauschen(x);
 //x.Exchange(0,1);
 memo2.Lines.Addstrings(x);
 x.Free;
 if checkbox1.Checked then
   showmessage('Checkbox1 ist gedrückt');
 
end;                  
Ich komm einfach nicht auf den Fehler. Hat jemand eine Idee?

mit freundlichen Grüßen
Zuletzt geändert von Lori am Di 9. Jul 2013, 18:45, insgesamt 1-mal geändert.
Grund: Bitte nutze den Highlighter

irq
Beiträge: 25
Registriert: Mi 3. Jul 2013, 02:32
OS, Lazarus, FPC: Linux (L 0.9.30 FPC 2.6.0)
CPU-Target: 32Bit, 64Bit

Re: Übergabe Tstringlist

Beitrag von irq »

hi
in tauschen() bekommst du bereits eine ref "moin" aus der parameterliste, warum erzeugst/zerstörst du noch eine tstringlist mit dem gleichen namen?
lass das create und free in tauschen weg.
viele grüße
-- irq

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2813
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Übergabe Tstringlist

Beitrag von m.fuchs »

Und das var auch. Also so:

Code: Alles auswählen

procedure tauschen(moin: tstringlist);
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Eradikator
Beiträge: 33
Registriert: Sa 8. Jun 2013, 19:45

Re: Übergabe Tstringlist

Beitrag von Eradikator »

Hallo, vielen Dank euch beiden. Ist eigentlich logisch. Ich hab nicht dran gedacht, dass moin durch x ersetzt wird und x als Stringlist schon erzeugt und wieder freigegeben wird.

freundliche Grüße

Antworten