Forum: Object-Pascal / Delphi-Language
Delphi
by bttb930,
22. Sep 2006
naja, mit DAUs hat das nicht viel zu tun, aber wenn ich alleine programmiere bin ich auch gerne mal faul.
nur programmiere ich idR im team mit 5-10 anderen entwicklern - und da rächen sich faulheiten früher oder später immer. egal ob DAUs im team sind oder nicht.
grundsätzlich überschreibt man nicht-virtuelle funktionen und prozeduren nicht.
Forum: Object-Pascal / Delphi-Language
Delphi
by bttb930,
22. Sep 2006
Das Überschreiben ist in diesem Fall aber gefährlich, da die Methode Add NICHT als virtual deklariert ist. Das heißt Du kannst in Deinem Beispiel per Liste.Add(...) zwar nur TMyDatas in die Liste eintragen, per (Liste as TObjectList).Add(...) aber beliebige TObjects. Und das passiert schneller als man denkt, nicht unbedingt durch expliziten TypeCast aber etwa wenn Du eine andere Prozedur hast,...
Forum: Object-Pascal / Delphi-Language
Delphi
by bttb930,
22. Sep 2006
Ich mache es ein klein wenig anders als oki:
bei mir ist TDataList NICHT von TObjectList abgeleitet sondern ANTHÄLT eine TObjectList:
type
TDataList = class
private
FList: TObjectList;
Forum: Object-Pascal / Delphi-Language
Delphi
by bttb930,
22. Sep 2006
Absolut falsch: Das ist kein Overkill sondern der richtige Weg: Genau so wie Du es beschrieben hast macht man das.
Und zum ersten Beitrag: Setzt Du Pointer auf nil, dann hast Du noch nicht den Speicherbereich auf den die Pointer vorher gezeigt haben frei gegeben. Aber arbeite einfach nicht explizit mit Pointern - Delphi macht das ja implizit sobald Du eine Klasse definierst. Frei geben kannst...