![]() |
Prozedur als Ereignis
Hallo,
ich habe mehrere Prozeduren (keine Klassenmethoden), die ich gerne dynamisch zur Laufzeit einem Onklick-Ereignis eines TImage zuordnen würde. Geht das irgendwie, oder ist das nur mit einer Methode möglich? Natürlich ginge es mit Hilfe einer Prozedurvariablen, die dann in einer fixen Onclick-Methode aufgerufen wird, aber da müsste ich die dann auch noch als Parameter übergeben, das würde ich mir lieber sparen. |
AW: Prozedur als Ereignis
Wie ist das Ereignis denn deklariert?
Davon hängt es ab, ob Methode oder Prozedur ... |
AW: Prozedur als Ereignis
Geht meiner Meinung nach nur mit einem Wrapper-Objekt und einer Prozedurvariablen.
Bei „of object“ wird ja der Self-Pointer im eax-Register übergeben, da müsste man schon einiges umbiegen. |
AW: Prozedur als Ereignis
OnClick eines TImage ist ein TNotifyEvent, also ein Methodenzeiger, da kann ohne Tricks keine Prozedur rein.
Du kannst allerdings eine Methode (TMethod) erstellen und dabei den Zeiger auf das Objekt der Methode auf nil setzen. Dann kannst du diesen erzeugten Methodenzeiger dem OnClick zuweisen. |
AW: Prozedur als Ereignis
Zitat:
Delphi-Quellcode:
Aber das ist echt dirty.
procedure Callback(_Self: TObject; Sender: TObject);
Warum verfrachtest du nicht einfach deine Prozeduren in eine Klasse? |
AW: Prozedur als Ereignis
Zitat:
Sinnvoller wäre aber in der Tat objektorientiert zu arbeiten. |
AW: Prozedur als Ereignis
Zitat:
@NamenLozer Hier interessiert mich "sender" nicht, und kommt auch nirgends vor. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 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 by Thomas Breitkreuz