![]() |
TStringlist sortieren
Hallo,
ich habe mir eine Stringliste deklariert mit folgendem Code
Delphi-Quellcode:
Nun sind ca 400 Einträge in der Liste und ich würde sie gern alphabetisch sortieren.
...
slOutList : tstrings; ... slOutList := tstringlist.create(); ... Hier im Forum finde ich jede Menge Beispiele mit ".sort" Nur wenn ich folgen Code probiere
Delphi-Quellcode:
sagt mir mein Compiler immer "Undefinierter Bezeichner 'sort'
...
slOutList.sort; ... Wo bitte liegt mein Fehler? Gruß Holger. :gruebel: |
Re: TStringlist sortieren
Sort gibt nur bei TStringList und nicht bei TStrings.
Und da deine Variable vom Typ TStrings ist ... |
Re: TStringlist sortieren
Zitat:
Das dürfte doch kein Problem sein, da TStringList ja ne implementierende Abelitung der abstrakten Klasse TStrings ist. Man muß nur Casten:
Delphi-Quellcode:
(slOutList as TStringList).sort;
|
Re: TStringlist sortieren
Danke.
Mit "slOutList as TStringList" klappt es Gruß Holger. |
Re: TStringlist sortieren
Zitat:
|
Re: TStringlist sortieren
Wieso überhaupt TStrings deklarieren und nicht TStringList? Die Abstraktion braucht man in dem Fall ja extrem selten.
|
Re: TStringlist sortieren
Hallo Manuel,
Zitat:
Grüße vom marabu |
Re: TStringlist sortieren
In diesem Fall (nämlich wenn man eine in der Superklasse nicht deklarierte Methode verwenden will, e.g. sort) hat man sich aber dann elegant vor sich selbst versteckt. Wenn man weiss was man will, sollte man natürlich so arbeiten, u.a. bei Streams.
|
Re: TStringlist sortieren
Zitat:
Ich denke, wenn ich in einer Procedure ein Object deklariere, dann verwende ich als Variable auch den Type den ich brauche. Un anscheinend gedenkt little_budda ja die Functionen von TStringlist zu verwenden. Warum dann nicht die Variable als TStringlist deklarieren? Gerd |
Re: TStringlist sortieren
Hallo Gerd,
die eigentliche Frage hatte Bernhard schon in Beitrag #2 beantwortet. Mein Beitrag bezog sich auf die Frage von Manuel: Zitat:
Meine Antwort möchte ich so verstanden wissen: Wird eine StringList instanziert, dann verwende ich eine Objektvariable vom Typ TStrings, wenn ich sowieso nur die von TStrings bereit gestellten Methoden verwenden möchte. Da Holger im konkreten Fall die Methode Sort() verwenden möchte, ist es kein Verstoß gegen das Universalprinzip die Objektvariable als TStringList zu deklarieren. Nur die unmotivierte Deklaration als TStringList ist unprofessionell. Ich fürchte nach genauem Lesen, dass auch Union meinen Beitrag falsch interpretiert haben könnte und hoffe mit dieser Lesehilfe auf mehr Verständnis. Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 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