AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Interface und Objektreferenz offenbar noch nicht verstanden
Thema durchsuchen
Ansicht
Themen-Optionen

Interface und Objektreferenz offenbar noch nicht verstanden

Ein Thema von Hepdepaddel · begonnen am 18. Sep 2015 · letzter Beitrag vom 30. Sep 2015
 
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.359 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Interface und Objektreferenz offenbar noch nicht verstanden

  Alt 24. Sep 2015, 11:43
Wenn Du mit Interfaces arbeitest solltest Du ab dem Moment nicht mehr mit der Klasse arbeiten.

Wenn Du z.B. eine Autoklasse hast:

TCar = class(TInterfacedObject, IEngine, IColor, IDriver) dann kannst Du später eine Objekt als Interface verwenden:

Delphi-Quellcode:
var Intf: IIinterface;

Intf := TCar.Create;
Dieses kannst Du dann prüfen, ob es auch andere Interfaces implementiert:

Delphi-Quellcode:
var lColor: IColor;
    lEngine: IEngine;
if Supports(Intf, IColor, lColor) then
  lColor.Color := clRed;
if Supports(Intf, IEngine, lEngine) then
  lEngine.Start;
Ab dem Moment kannst bzw. solltest Du nicht mehr mit der Klasse arbeiten. Jedenfalls nicht von außen auf diese zugreifen.


In Deinem Beispiel verstehe ich nicht wirklich, warum Du Summary als Interface ausführen willst. Das könnte doch auch einfach eine Klasse oder ein Record bleiben, der die Zählwerte sammelt.

In Interface bringt Vorteile,
- wenn Du Dich nicht mehr um die Freigabe des Objektes kümmern willst
oder
- wenn Du unterschiedliche (nicht voneinander abgeleitete) Klassen hast, die die gleichen Funktionalitäten implementieren sollen (also an bestimmten Stellen austauschbar sein müssen).


Du kannst ja mal schauen, ob Dir mein Tutorial etwas bringt: http://www.delphipraxis.net/183702-i...-factorys.html
Die Videos vermutlich nicht, aber evtl. die Diskussion dort.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
 


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 06:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz