Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Delphi Neuer Artikel: Interfaces (https://www.delphipraxis.net/59904-neuer-artikel-interfaces.html)

xaromz 30. Dez 2005 12:28


Neuer Artikel: Interfaces
 
Hallo,

da ich bisher nichts Vernünftiges in Netz gefunden habe, habe ich mich mal hingesetzt und eine Einführung in die Erstellung und Verwendung von Interfaces geschrieben. Zu finden ist das hier: Einführung in Interfaces
Da Interfaces ein mächtiges Werkzeug sind und gerade bei PlugIns sehr nützlich sind sollte das doch den einen oder anderen interessieren, oder?

Um Rückmeldung wird gebeten :wink: .

Gruß
xaromz

c113plpbr 30. Dez 2005 12:46

Re: Neuer Artikel: Interfaces
 
Hmm ... scheint nach kurzem überfliegen ganz hilfreich zu sein, was mich aber zu Interfaces beinahe "brennend" interessieren würde, wäre der Aufbau "hinter den Kulissen", sprich, wie das alles dann im Speicher aussieht, usw.

Wenn du dazu noch was hättest, wäre dies für mich ebenfalls sehr hilfreich ... ^^

ciao, Philipp

jbg 30. Dez 2005 13:02

Re: Neuer Artikel: Interfaces
 
Zitat:

Zitat von c113plpbr
Wenn du dazu noch was hättest, wäre dies für mich ebenfalls sehr hilfreich

Als Lektüre würde ich da die System.pas:TObject.GetInterfaceTable Methode vorschlagen.

Noch was zu den schönen Funktionsnamen: The Dreaded Underscore

Übrigens das "Lastwagen/Auto/... := nil;" am Ende der Funktion ist unnötig. Das erledigt der Compiler selbst mit einem versteckten try/finally Block.

xaromz 30. Dez 2005 13:24

Re: Neuer Artikel: Interfaces
 
Hallo,
Zitat:

Zitat von c113plpbr
was mich aber zu Interfaces beinahe "brennend" interessieren würde, wäre der Aufbau "hinter den Kulissen", sprich, wie das alles dann im Speicher aussieht, usw.

Wie das hinter den Kulissen aussieht kann ich Dir auch nicht ganz genau sagen. Es gibt wohl in jeder Klasse eine InterfaceTable, in der die verfügbaren Interfaces stehen und so referenziert werden können. Jeder Eintrage besitzt eine GUID und eine eigene VTable für das jeweilige Interface.
Per Compiler-Magic werden die Routinen _IntfCopy, _IntfClear und _IntfCast aufgerufen. In diesen Routinen wird dann _AddRef bzw. _Release aufgerufen.
Ich hoffe, diese Information hilft.

@jbg: Ich weiss, dass das eigentlich unnötig ist, aber erstens ist Aufräumen nie verkehrt und zweitens soll ja das automatische Zerstören gezeigt werden.

Gruß
xaromz

Cicaro 18. Jan 2006 14:27

Re: Neuer Artikel: Interfaces
 
Kann man deine Tutorials auch bewerten ? :gruebel:
Mir ist schon im 2.Satz deines Interface-Tutorials ein Fehler bei der Fachsprache aufgefallen. Im Interface definiere ich keine Funktionen/Methoden sondern deklariere sie. Es ist die Aufgabe der eigentlichen Klasse die Methoden zu definieren/implementieren. :warn:

xaromz 19. Jan 2006 22:28

Re: Neuer Artikel: Interfaces
 
Hallo,
Zitat:

Zitat von Cicaro
Kann man deine Tutorials auch bewerten ? :gruebel:

Bewerten kannst Du sie gerne in den entsprechenden Threads hier.
Zitat:

Zitat von Cicaro
Mir ist schon im 2.Satz deines Interface-Tutorials ein Fehler bei der Fachsprache aufgefallen. Im Interface definiere ich keine Funktionen/Methoden sondern deklariere sie. Es ist die Aufgabe der eigentlichen Klasse die Methoden zu definieren/implementieren. :warn:

Wenn's weiter nichts ist. Ich habe aber geschrieben, dass der Funktionsumfang definiert wird, nicht die Funktion. Das war auch nicht als Informatiker gesprochen, sondern als Mensch :zwinker: . Ich hab's trotzdem mal geändert.

Gruß
xaromz


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