AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Unterschied zwischen TStrings und TStringList Deklaration
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied zwischen TStrings und TStringList Deklaration

Ein Thema von Chemiker · begonnen am 9. Jun 2007 · letzter Beitrag vom 9. Jun 2007
Antwort Antwort
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#1

Unterschied zwischen TStrings und TStringList Deklaration

  Alt 9. Jun 2007, 10:22
Hallo,

ich habe mal eine Frage rein interessehalber, wenn man eine StringList deklariert warum dies mit TStrings geschieht.

In der Delphi-Hilfe ist dies angegeben:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var TempList: TStrings; { Liste deklarieren }
begin
  TempList := TStringList.Create; { Listenobjekt erzeugen }
  try { Stringliste verwenden }
  finally TempList.Free; { Listenobjekt freigeben }
  end;
end;
Warum wird die Deklaration nicht direkt mit TStringList durchgeführt?

In der Delhi-Hilfe der Version 7, unter dem Beispiel für die Methoden Add, AddStrings, Find
Wird die String-Liste mit:

Var MyList: TStringList // deklariert. Wie soll nun die String-Liste deklariert werden?
Welche Vor- und Nachteile können sich daraus ergeben?

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Unterschied zwischen TStrings und TStringList Deklaratio

  Alt 9. Jun 2007, 10:53
TStringList ist eine Erweiterung von TStrings meines Wissens nach.
Man sollte bei der Deklaration
Var MyList: TStringList // deklariert. verwenden
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: Unterschied zwischen TStrings und TStringList Deklaratio

  Alt 9. Jun 2007, 10:59
Um mal aus der Hilfe zu zitieren
Zitat:
TStrings enthalten abstrakte bzw. rein virtuelle (C++ Terminologie) Methoden und sollten nicht direkt instantiiert werden.
Oder anders gesagt: die Hälfte der Methoden von TStrings ist noch garnicht implementiert

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Unterschied zwischen TStrings und TStringList Deklaratio

  Alt 9. Jun 2007, 11:06
Hallo,

wenn ich eine Variable vereinbare, dann verwende ich immer diejenige Vorgänger-Klasse, deren Eigenschaften und Methoden für meine Zwecke ausreichen. Dadurch erhöhe ich die Wiederverwendbarkeit des Codes beträchtlich. Bei einer StringList gilt es zu prüfen, ob die neu eingeführten Methoden und Eigenschaften bzgl. der Sortierfähigkeit im Vordergrund der Anwendung stehen. In diesem Fall würde ich auch die Variable mit dem Typ TStringList vereinbaren, aber nur für den Kontext in welchem diese Eigenschaften benötigt werden. Bei der Übergabe an eine Funktion, die keinen Gebrauch von diesen Eigenschaften macht, würde ich dann wieder mit TStrings arbeiten. Die Vorgehensweise gilt für alle Klassen und ist eine direkte Umsetzung des Information Hiding Prinzips.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Unterschied zwischen TStrings und TStringList Deklaratio

  Alt 9. Jun 2007, 12:16
Hallo,

danke für die schnelle Antwort.

Was ich feststellen muss, dass die Meinungen bezüglich der Deklaration von StringList da etwas auseinander gehen.

Was marabu geschrieben hat ist aber sehr interessant, weil ich so bisher nicht vorgegangen bin.
Das liegt aber wohl an meinen Programmierstil, wenn ich anfange weis ich nicht immer so im Detail was letztlich am Ende rauskommt. Während des Schreibens kommen Ideen die ich dann versuche auch noch umzusetzen.
Ich versuche mal das Ganze in einem Satz zusammenzufassen:
So viel wie nötig, so wenig wie möglich

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 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