![]() |
TStrings einer TListBox auswechseln?
Hallo Leuts,
ich hab mal eine (mehr theoretisch gemeinte) Frage. Ist es möglich (ohne Exceptions) einer TListbox ihre Strings "wegzunehmen) sprich mittels Free zu zerstören? Und wenn ich gleich dabei bin ... wie kann ich ihr einen neue Strings-Instanz übergeben? (listbox.Strings := ... wird das einfach geschluckt?). Nimmt die Listbox auch eine TStringList, oder verwendet sie intern eine andere, nicht kompatible Listenklasse. mfG Markus |
Re: TStrings einer TListBox auswechseln?
Intern wird eine TStringList verwendet. Diese freizugeben ist unmoeglich. Es wuerde zu Abstuerzen fuehren.
Man kann einen anderen TStrings-Abkoemmling wie etwa eine TStringList einfach zuweisen. Die Implementierung der Zuweisung loescht die Strings der ListBox und kopiert die Strings der anderen Liste. An der Quell-Liste aendert sich garnichts. Setze dich mal mit der Methode Assign und AssignTo von TPersistent auseinander. |
Re: TStrings einer TListBox auswechseln?
Zitat:
Aber vielen Dank! mfG Markus |
Re: TStrings einer TListBox auswechseln?
Zitat:
Wenn du ListBox.Items:=MyStrings schreibst, wird intern ein Assign ausgeführt und alle Strings aus MyStrings in die ListBox übertragen. Also, wo ist das Problem? |
Re: TStrings einer TListBox auswechseln?
So:
Zitat:
Oder einfach mit:
Delphi-Quellcode:
die Listbox leeren fuer den Fall das es an Strings mangelt. :wink:
ListBox1.Clear;
Delphi-Quellcode:
var
MyTStrings: TStrings; begin listbox1.clear; MyTStrings := TStringList.Create; MyTStrings.Add('Hi.'); MyTStrings.Add('Hai.'); MyTStrings.Add('Hei.'); listbox1.Items.AddStrings(MyTStrings); MyTStrings.free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 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