AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wieso suck't eigentlich TList?

Ein Thema von alzaimar · begonnen am 7. Aug 2005 · letzter Beitrag vom 12. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Wieso suck't eigentlich TList?

  Alt 7. Aug 2005, 20:11
Ja ja, blöder Header. Aber was ich mal wissen will:
1.Was ist denn an TList so schlimm?
2.Und was ist denn besser?

Danke für die Aufklärung.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Wieso suck't eigentlich TList?

  Alt 7. Aug 2005, 20:14
Zitat von alzaimar:
1.Was ist denn an TList so schlimm?
ähm, das frag ich mich auch. wie kommst du darauf?

aenogym

edit: blöde tippfehler...
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: Wieso suck't eigentlich TList?

  Alt 7. Aug 2005, 20:29
Moin Alzi
Das hast du sicher von mir gelesen.
Generell hben allen fast streng tpisierten Nachfahren vn TList das Problem, dass ich sie auf TList casten und einen Pointer auf einen Gartenstuhl reinwerfen kann. Add, Insert sind nunmal nicht vrtuelle und deshalb kann man dort im Nachfahren keine Typenprüfung vornehmen.
Das stört mich dabei am meisten. Außerdem steht sie in Classes.pas und ich persönlich versuchte innerhalb der zentralen Units die Finger davon zu lassen.[1]
Es gibt noch ein paar mehr Dinge, die ich persönlich nicht daran mah, aber die will ich jetzt auch nicht alle auflisten...

[1]So kann man sehr kleine Packages schnell austauschen, ohne die Anwendung dazu zu zwingen die VCL extern zu referenzieren
Außerdem ist dermaßen mit Funktionen, typen, Klassen, Konstanten zugestopft, dass die sich auch in der Code Completion breit machen...
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Wieso suck't eigentlich TList?

  Alt 7. Aug 2005, 20:47
Zitat von alzaimar:
Ja ja, blöder Header.
[...]
...nun - wenn Du es selber schon so empfindest, warum drängst Du uns allen dann diesen Titel auf? Ändere ihn bitte umgehend.


Eine TList per se ist nichgts Schlechtes, sie hat u.A. die von Robert aufgelisteten Eigenschaften - darüber sollte man sich bei deren Benutzung jedoch im Klaren sein.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#5

Re: Wieso suck't eigentlich TList?

  Alt 8. Aug 2005, 00:36
Jo, und was soll an Unit Classes so schlecht sein ? Irgendwo muß es in jeder Library einen Anfang geben.

Und wenn man mit TList nun einfach nur Pointer verwalten will ?

Zitat:
Generell hben allen fast streng tpisierten Nachfahren vn TList das Problem, dass ich sie auf TList casten und einen Pointer auf einen Gartenstuhl reinwerfen kann.
Ja und ? die Frage ist doch WIE du castest, wahrscheinlich ein harter Typcast der die Compiler Typprüfung deaktiviert. Wenn man aber TList so benutzt wie es die Borländer vormachen dann sind sehr häufig Objekte darin gespeichert, und die sollte man mit "as" oder "is" casten.
Saubere Typcasts an sich sind doch kein Übel sondern in jeder OOP Sprache vorhanden und auch notwendig.

Falls man mehr Aufwand treiben will dann kann man natürlich für jede mögliche Art von Datentyp/Klassentyp immer wieder eine eigenes TList Object erzeugen. Jo, das wäre wohl dann OOP konform, alles mit 1000'enden Klassen zupflastern bis man den Wald vor lauter Objekten nicht mehr sieht.

Ich meine TList hat eine Existenzberechtigung und gerade weil sie eben nicht jeden Anwednungsfall abdenken kann und auch garnicht den Anspruch darauf erheben will.

Gruß Hagen
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: Wieso suck't eigentlich TList?

  Alt 8. Aug 2005, 07:33
Also wenn ich Objekte in einer Liste verwalten will, nehme ich immer TObjectList. Der kann ich schon mal ohne expliziten Typecast zu TList keine wildfremden Zeiger übergeben. Und dann muss man eben TObjectList als Basisklasse ansehen und somit bei den Parametern angeben.

Beim Ableiten von TObjectList muss man für speziellere Klassen "nur" die Add, Insert und Items[] Methoden/Properties neu implementieren und dort den Typecast machen. (Dafür hätte ich sehr gerne Templates).
Man muss dabei aber konsequent sein und dann auch immer TXyzList statt TObjectList als Parametertyp angeben, wo man auch eine TXyzList erwartet. Ich gebe z.B. recht selten TObjectList als Typ an, wenn es sich nicht gerade um eine Funktion handelt, die nicht direkt auf den Daten arbeitet, wie z.B. nil-Items entfernen. Aber solche Funktionen sind recht rar.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: Wieso suck't eigentlich TList?

  Alt 8. Aug 2005, 08:15
Ich glaube ihr habt das schlimmer eausgelesen als es gemeint war.
Ich bezog mich eigentlich darauf:
Zitat:
1.Was ist denn an TList so schlimm?
Da eine Containerklasse keine "Rocketcience" ist, sehe ich kaum einen Grund nicht meine eigene zu schreiben, wenn ich etwas an den gegeben auszusetzen habe.
Zitat von Robert_G:
Generell hben allen fast streng tpisierten Nachfahren vn TList das Problem, dass ich sie auf TList casten und einen Pointer auf einen Gartenstuhl reinwerfen
Ich minimiere halt gerne die möglichen Fehlerquellen so gut es geht, wenn ein Kollege eine API von mir nutzt, ist es nicht unmöglich, dass das passieren könnte. Also warum muss ich es unbedingt ermöglichen?
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#8

Re: Wieso suck't eigentlich TList?

  Alt 11. Aug 2005, 17:45
Wenn Dich das mit dem Typcast stört, dann überschreib einfach Notify. Hier kannst Du dann bequem den Typ des geaddeten Elements prüfen und gegebenenfalls Gegenmaßnahmen einleiten.

[edit=sakura] SINNLOSEN-Teil gelöscht. Bitte erspare Die das in Zukunft Mfg, sakura[/edit]
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#9

Re: Wieso suck't eigentlich TList?

  Alt 12. Aug 2005, 10:15
warum nutzt du tlist direkt?

nutz doch lieber eine vererbte variante davon mit typisierten parametern.
klar intern wäre die immer noch mit pointer usw. aber es kommt ja auch auf das interface an.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
CLRS530

Registriert seit: 27. Jun 2005
Ort: Hamburg
39 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Wieso suck't eigentlich TList?

  Alt 12. Aug 2005, 10:31
Am besten ist eh immer sich eine Liste selbst zu schreiben

Zumindestens mache ich das immer.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:09 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