Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [Gelöst] TStrings deffinieren und in Listbox Komponent laden (https://www.delphipraxis.net/69075-%5Bgeloest%5D-tstrings-deffinieren-und-listbox-komponent-laden.html)

Jessa 9. Mai 2006 21:54


[Gelöst] TStrings deffinieren und in Listbox Komponent laden
 
Ich habe die Idee mit dem Popup erstmal verworfen bis ich besser mit TStringlist klar kommen.

Nun möchte ich ein Programm schreiben was am anfang eine Datei abfragt und die Strings in TStringlist einfügt und von da aus in die listbox einfügt.

Doch bevor ich das machen kann muss ich erstmal einen TStringlist deffinieren, kein Problem doch will ich nun den TStringlist in die ListBox1 übertragen bekomme ich nur einen Fehler.

Erstmal muss ich es schaffen das man die Einträge über Edit1.Text in die TStringlist und dann von der der TStringlist in die ListBox1 läd.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
x := edit1.Text;
sl := TStringlist.Create;
try
sl.Add(x);
finally
sl.Free;
list1.Items.AddStrings(sl);
end;
end;

end.
So siehts derzeitig aus, doch ich bekomme nur einen Fehler.

Bernhard Geyer 9. Mai 2006 21:56

Re: TStrings deffinieren und in Listbos Komponente laden
 
Fällt dir an der Reihenfolge dieser beiden Codezeilen etwas auf:

Delphi-Quellcode:
sl.Free;
list1.Items.AddStrings(sl);
:gruebel:

CalganX 9. Mai 2006 21:59

Re: TStrings deffinieren und in Listbos Komponente laden
 
Hi,
grundsätzlich: wenn ein Fehler auftritt, sag einfach was für ein Fehler. Beschleunigt die Lösungsfindung.

Allerdings ist bei dir schon direkt ersichtlich, warum es zu einer Zugriffsverletzung kommt:
Zitat:

Delphi-Quellcode:
{...}
    sl.Free
    List1.Items.AddStrings(sl);

Das Programm wird die Befehle in dieser Reihenfolge ausführen. Was passiert bei dieser Stelle? Zu erst wird deine Stringliste aus dem Speicher entfernt. Dann fügst du die Stringliste in etwas anderes ein. Problem: die Stringliste existiert gar nicht mehr. ;)
Wenn überhaupt dann anders rum. Allerdings empfiehlt es sich die Zuweisung nicht in den finally-Abschnitt zu packen.

Chris

Jessa 9. Mai 2006 22:12

Re: TStrings deffinieren und in Listbos Komponente laden
 
*sich zu Boden schämt* Danke *ganz ganz leise*


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:02 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