Announcement

Collapse
No announcement yet.

interessanter Delphi 5 Fehler

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    @Robert, sau..

    Ich empfehle Dir trotzdem mal über die Verwendung von Interfaces nachzudenken. Dann kannste nämlich die komplette Tobject Klasse im privaten implementierungsteil der Unit verkapslen. Zusätzlich umgehst Du Probleme wie "was wenn der User TMyObject.Free aufruft", und wie soll der user sich vernünftig verhalten, muss er nun das Object freigeben oder nicht. Die häufigste Supportfrage wird aber sein "How Robert, can I create a TMyObject ? on many tries the system display a unreadable message "Ein TMyObject kann nicht erzeugt werden".".<br>

    Bei Interfaces haste auch den Vorteil das Du spätere Erweiterungen einfach als gepluggtes Interface an die bestehenden anhängst. Heist, will der User die neueren Features nutzen muss er das neuere Interface erfragen.<br>
    Übrigens, der RefCounter eines internen, interfaced TMyObject würde dann auch die Anzahl der Allokationen eines Interfaces anzeigen.<br>

    Gruß Hage

    Comment


    • #17
      TMyObject.Free ist problemlos. Das Controllerobjekt hat sich mit dem TMyObject privat verlinkt.<br>
      TMyObject.Free informiert einfach das Controllerobjekt. Bei meiner Implementation wird einfach eine Kopie des gerade zerstoerten Objekts generiert, da dies ja ein reales Device repraesentiert.<br>
      Wird das Geraet ausgesteckt so wird das zugehoerige TMyObject nur stillgelegt. Seine Methoden funktionieren mangels Geraet einfach nicht mehr.<br>
      Wird der Controller freigegeben, so werden einfach alle TMyObjects stillgelegt und der Controller aus der internen Verlinkung genommen.
      Die TObjects taugen dann nur noch zum Free

      Comment

      Working...
      X