![]() |
TStringList vs. TStrings
Ganz verstehe ich in der praktischen Handhabung den Unterschied zwischen TStrings und TStringList nicht.
In der Hilfe zu TStrings steht: Zitat:
Und kann ich der Eigenschaft TMemo.Lines mittels Zuweisung einfach eine vorhandene Instanz von TStringlist, die ich vorher manuell erstellt habe, zuweisen?
Code:
Oder muss ich die Zeilen von sl einzeln auf Memo1.Lines kopieren?
var sl: TStringList;
begin sl:=TStringlist.create; sl.lines.add(...); .... Memo1.Lines:=sl; |
AW: TStringList vs. TStrings
Das TMemo hat intern eine eigene TStrings-Klasse (meine die heißt TMemoStrings oder so). Nach außen hin ist es eben die TStrings Klasse.
Dadurch hast Du verschiedene möglichkeiten:
Delphi-Quellcode:
procedure FuelleListe(AStrings : TStrings);
begin AStrings.Add('Test'); end;
Delphi-Quellcode:
oder
FuelleListe(Memo1.Lines);
Delphi-Quellcode:
Klar kannst Du den Memo Lines eine Stringlist zuweisen:
procedure MacheWasMitStringList;
var SL : TStringList; begin SL := TStringList.create; FuelleListe(SL); end;
Delphi-Quellcode:
Memo1.Lines.AddStrings(MeineStringList);
|
AW: TStringList vs. TStrings
TStrings ist lediglich die "Schnittstellenklasse" nach außen, intern arbeiten die sie enthaltenden Klassen mit Abkömmlingen davon (TStringlist z.B.). Und eine direkte Zuweisung einer TStringlist zu TMemo.Lines ist möglich, weil der entsprechende Setter für die Anlage einer Kopie sorgt, ansonsten könntest Du Probleme bekommen, wenn Du die zugewiesene TStringlist-Instanz wieder freigibst.
|
AW: TStringList vs. TStrings
Delphi-Quellcode:
? :shock:
sl.lines.add
Im TMemo.Lines ist intern ein TMemoStrings versteckt, was auch ein Nachfahre von TStrings ist.
Delphi-Quellcode:
entspricht eigentlich einem
Memo1.Lines := SL;
Delphi-Quellcode:
, also nix mit Zuweisen einer Instanz.
Memo1.Lines.Assign(SL);
|
AW: TStringList vs. TStrings
Danke für die ausführlichen Erklärungen, bis jetzt war das für mich recht undurchsichtig, und so etwas hasse ich :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 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