![]() |
Delphi-Version: 2010
Anonyme Methode als Eventhandler - geht nicht?
Hallo,
nachdem ich jetzt die XE-Trial installiert habe spiele ich ein wenig mit den (für mich als D2007-User) neuen Möglichkeiten. Ist es eigentlich nicht möglich eine anonyme Methode als Eventhandler für z.B. OnClick zu benutzen? Ich meine dabei so etwas:
Delphi-Quellcode:
So eine Konstruktion lässt sich nicht kompillieren (Fehlermeldung besagt, dass ein Methodenzeiger erwartet wurde aber eine normale Prozedur gefunden wurde).
MyButton.OnClick := procedure(Sender: TObject)
begin ShowMessage('Ich bin anonym.'); end; Auch so etwas führt zu einem Compilerfehler:
Delphi-Quellcode:
Diesmal ist es dann ein simpler Syntaxfehler :cry:
MyButton.OnClick := procedure(Sender: TObject) of object
begin ShowMessage('Ich bin anonym.'); end; Sind anonyme Methoden nicht dafür vorgesehen als Eventhandler benutzt zu werden? Kennt sich da jemand aus? Ciao, Ralf |
AW: Anonyme Methode als Eventhandler - geht nicht?
Das ging noch nie. Und was verstehst du unter einem anonymen Eventhandler?
Wenn nichts passieren soll, weißt man einfach keinen Eventhandler zu. Und wenn etwas passieren soll muss man natürlich auch den Eventhandler zuweisen in dem das was passieren soll aufgeführt ist. |
AW: Anonyme Methode als Eventhandler - geht nicht?
Eine Prozedur ist halt was anderes als eine Methode
|
AW: Anonyme Methode als Eventhandler - geht nicht?
Theoretisch sollte es gehn, aber du versuchst hier eine Procedur an etwas zu übergeben, welches eine Methode erwarted.
|
AW: Anonyme Methode als Eventhandler - geht nicht?
Zitat:
|
AW: Anonyme Methode als Eventhandler - geht nicht?
Wenn das ganze wirklich mit einer Methode ginge wäre es interessant von welchem Typ dann Self wäre.
Das mit dem Namen der fälschlich verwendet wird kenne ich irgendwo her. Früher gab es mal eine IDE namens Delphi in der man Object-Pascal-Code geschrieben hat. Irgendwann hat man dann einen Object-Pascal-Code mehr geschrieben sondern es war Delphi-Code. |
AW: Anonyme Methode als Eventhandler - geht nicht?
Zitat:
Eine "Methode" liegt in einer Klasse und ohne Klasse ist es eine Funktion/Prozedur. Zitat:
|
AW: Anonyme Methode als Eventhandler - geht nicht?
Was ich dann nicht verstehe ist dann aber,
![]() |
AW: Anonyme Methode als Eventhandler - geht nicht?
In diesem Fall handelt es sich ja um einen Funktionszeiger und kein Methodenzeiger
|
AW: Anonyme Methode als Eventhandler - geht nicht?
Das Event ist vom typ "reference to procedure". Nur dann kannst Du diese Event zuweisen bei Klassen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 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