Delphi-PRAXiS
Seite 5 von 5   « Erste     345   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Tutorial Interfaces (https://www.delphipraxis.net/192364-tutorial-interfaces.html)

sakura 10. Okt 2017 09:13

AW: Tutorial Interfaces
 
Zitat:

Zitat von hph97 (Beitrag 1382988)
Warum funktioniert das Beispiel von DeddyH nur, wenn alles in der selben Unit implementiert ist? Wenn ich diesen kompletten Interface Teil in einer Unit2 auslagere so bekomme ich die Compiler Fehlermeldung "E2010 Inkompatible Typen IDisplay und TEdit".

Weil hier der Compiler ein wenig ausgetrickst wurde. Stelle Unit2 an das Ende der Uses-Klausel, dann sollte es wieder gehen.

TEdit ist unter anderem auch in Vcl.StrCtrls definiert ;-)

...:cat:...

hph97 10. Okt 2017 10:18

AW: Tutorial Interfaces
 
Zitat:

Weil hier der Compiler ein wenig ausgetrickst wurde. Stelle Unit2 an das Ende der Uses-Klausel, dann sollte es wieder gehen.
Ah cool, vielen Dank für den Tipp!

Devstructor 11. Okt 2017 07:34

AW: Tutorial Interfaces
 
Es wäre noch ganz gut, wenn man kurz das RefCounting anhand der Klassen TComponent und TInterfacedObject im Tutorial aufgreift.

Dein DataModule ist von TComponent abgeleitet, deswegen kann man innerhalb und außerhalb der Klasse ganz normal mit der Objektreferenz arbeiten, ohne mit Konsequenzen zu rechnen. Dasselbe gilt natürlich auch für Formulare und anderen Kindern von TComponent.

Ein Hinweis auf RefCounting in diesem Tutorial - oder einem nächsten – wäre aus meiner Sicht wichtig, weil sonst Objekte von TInterfacedObject bei manchen automatisch zerstört werden, sobald der RefCount auf 0 dekrementiert. Wenn man das als Anfänger nicht weiß, ist der Fehler schwer reproduzierbar. Eventuell einfach ein try finally-Block mit und ohne FreeAndNil und dann im Destructor eine Konsolenausgabe. Dann kann man sehen, dass bei TComponent das manuelle zerstören benötigt wird und bei TInterfacedObject alles von alleine passiert 8-)

LG
Miguel :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:01 Uhr.
Seite 5 von 5   « Erste     345   

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