Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Verständnisfrage Interfaces (https://www.delphipraxis.net/179922-verstaendnisfrage-interfaces.html)

schöni 10. Apr 2014 22:20

Verständnisfrage Interfaces
 
Interfaces Verständnisfrage

Ich studiere gerade die ToolsAPI Units. Dabei ist mir aufgefallen, das es neben

Delphi-Quellcode:
type
  IMyInterface = Interface(IInterface)
  end;
Delphi-Quellcode:
type
  TMyInterface = class(TInterface)
  end;
gibt.

Bisher kannte ich nur das Erstere. Klar kann ich eine Klasse TInterface nennen, die dann abstrakte Methoden definiert. Aber welchen Zweck erfüllen diese TInterface Klassen im ToolsAPI

Wenn ich einen IDE Experten bauen will, verlasse ich mich nach meinem Verständnis auf ein IInterface, das Methoden definiert, mit deren Hilfe ich auf die Funkionalität der IDE zugreife, indem ich

die Methoden des Interfaces aufrufe. Ich verlasse mich hierbei auf die Implementierung in der IDE.

Wozu dann aber die TInterface Klassen?

Diese beschreiben ja auch nur abstrakte Methoden.

jaenicke 11. Apr 2014 05:36

AW: Verständnisfrage Interfaces
 
Das sieht sehr nach dem Vorläufer von TInterfacedObject aus.

In XE5 ist das alles auch als deprecated, also veraltet markiert.

Uwe Raabe 11. Apr 2014 08:35

AW: Verständnisfrage Interfaces
 
Zitat:

Zitat von jaenicke (Beitrag 1255266)
Das sieht sehr nach dem Vorläufer von TInterfacedObject aus.

Mit einem interessanten Unterschied: Nach dem Create steht der RefCount auf 1 und nicht 0 und das Free zählt den RefCount wieder runter, zerstört aber die Instanz nicht, wenn RefCount noch nicht 0 ist, während TInterfacedObject da einen Error liefert.

TInterfacedObject gab es übrigens auch schon in D5 (womöglich auch davor, aber das kann ich jetzt nicht nachprüfen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:17 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