Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Anonyme Methode als Eventhandler - geht nicht? (https://www.delphipraxis.net/154201-anonyme-methode-als-eventhandler-geht-nicht.html)

Ralf Kaiser 31. Aug 2010 19:31

AW: Anonyme Methode als Eventhandler - geht nicht?
 
Zitat:

Zitat von mkinzler (Beitrag 1046469)
In diesem Fall handelt es sich ja um einen Funktionszeiger und kein Methodenzeiger

Ja. Eben. Bei meinem Versuch wurde mir vom Compiler gesagt, dass ein Methodenzeiger erwartet wurde. Dort wird kein Methodenzeiger benutzt und es compilliert doch. Irgendwie nicht so ganz konsistent...

mkinzler 31. Aug 2010 19:34

AW: Anonyme Methode als Eventhandler - geht nicht?
 
Nein, es ist ja gerade andersrum. Eine Eventproperty ist ein Methodenzeiger und eine anonyme Methode ein Funktionszeiger.

Ralf Kaiser 31. Aug 2010 19:34

AW: Anonyme Methode als Eventhandler - geht nicht?
 
Zitat:

Zitat von daywalker9 (Beitrag 1046470)
Das Event ist vom typ "reference to procedure". Nur dann kannst Du diese Event zuweisen bei Klassen.

OK. Jetzt hab ich es verstanden (dauert halt manchmal etwas :wink: )

Wenn also TNotifyEvent als "reference to procedure(Sender: TObject)" definiert wäre (was es ja nicht ist) dann hätte mein Versuch sich compillieren lassen, oder?

mkinzler 31. Aug 2010 19:40

AW: Anonyme Methode als Eventhandler - geht nicht?
 
Ja. Ist er aber nicht.

himitsu 31. Aug 2010 19:46

AW: Anonyme Methode als Eventhandler - geht nicht?
 
Ich hatte mich schon gefragt, was dieses "reference to procedur/function" überhaupt sein soll.

Und ich hab da grade was gefunden:
http://blog.barrkel.com/2010/01/usin...in-method.html

Im Prinzip ist es also eine Art aufgemotzter Methodenzeiger, gemischt mit einer interfaceähnlichen Referenzzählung?

Ralf Kaiser 31. Aug 2010 19:51

AW: Anonyme Methode als Eventhandler - geht nicht?
 
Hallo Himi,

Danke für den Hinweis und den Link. Diese Funktion "MethRefToMethPtr" die dort implementiert ist scheint die Lösung zu sein. Muss ich Morgen mal ausprobieren.

Ciao,
Ralf


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:18 Uhr.
Seite 2 von 2     12   

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