AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi TObjectList-Object da, aber beim Zugriff Stack-Overflow
Thema durchsuchen
Ansicht
Themen-Optionen

TObjectList-Object da, aber beim Zugriff Stack-Overflow

Ein Thema von Captnemo · begonnen am 18. Jan 2016 · letzter Beitrag vom 3. Feb 2016
Antwort Antwort
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#1

AW: TObjectList-Object da, aber beim Zugriff Stack-Overflow

  Alt 18. Jan 2016, 14:47
Danke für deine Hilfe. Den eigentlichen Fehler habe ich mittlerweile gefunden: es war lediglich ein fehlendes inherited beim Zugriff auf das TTemperaturobjekt.

wäre es die Containerklasse nicht von der Klasse TObjectList abzuleiten sondern eine interne (private) TObjecList Instanz zu benutzen. Das entkoppelt die API der TObjectList und sichert den Client-Code besser gegen "versehentliche" Verwendung von TObjectList Methoden ab. Das könnte auch für die konkrete Fehlersuche hilfreich sein.
Aber wenn du mir das noch mal anders erläutern könntest, wäre ich dir sehr dankbar, denn ich weiß im Augenblick nicht was du damit meinst.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#2

AW: TObjectList-Object da, aber beim Zugriff Stack-Overflow

  Alt 18. Jan 2016, 14:53
Bei mir sind Container immer z.B. so aufgebaut:

Delphi-Quellcode:
type
  TTemperaturList=class(TObject)
  private
    Liste: TObjectList;

    ...
    
  public
    constructor Create;
    destructor Destroy; override;
Von aussen hin kann ich dann gezielt nur die von meiner Klasse definierten Funktionen und Prozeduren aufrufen. Dass innen eine TObjectList oder etwas anderes enthalten ist, soll der Client nicht sehen können.
Michael Justin
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: TObjectList-Object da, aber beim Zugriff Stack-Overflow

  Alt 18. Jan 2016, 14:57
Ich denke er meint, dass du eine Objektlist in deiner neuen Klasse kapselst. So kann man ganz gut die eventuelle Object-Casterei verbergen.

Edit:Und war sogar selber schneller als ich...

Delphi-Quellcode:
type
  TTemperaturList=class
    ObjectList:TObjectList;
  public
    constructor create;
    function count:integer;
  end;

TTemperaturList.create;
begin
  ObjectList:=TObjectList.create;
end;

TTemperaturList.count:integer;
begin
  Result:=ObjectList.Count;
end;

Andere Bemerkung, wenns erlaubt ist: Was mich an deinem Klassenkonstrukt stört ist was für verschiedene Dinge nicht alles Temp heißen. Da hat ich nämlich auch Probleme deinen QT nachzuvollziehen.
Ralph
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.385 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TObjectList-Object da, aber beim Zugriff Stack-Overflow

  Alt 18. Jan 2016, 16:15
wäre es die Containerklasse nicht von der Klasse TObjectList abzuleiten sondern eine interne (private) TObjecList Instanz zu benutzen. Das entkoppelt die API der TObjectList und sichert den Client-Code besser gegen "versehentliche" Verwendung von TObjectList Methoden ab. Das könnte auch für die konkrete Fehlersuche hilfreich sein.
Aber wenn du mir das noch mal anders erläutern könntest, wäre ich dir sehr dankbar, denn ich weiß im Augenblick nicht was du damit meinst.
Siehe auch:
http://clean-code-developer.de/die-g...heritance_FCoI
  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 11:12 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