![]() |
Kann Event nicht zuweisen! Wieso?
Hallo Leute
Ich hänge seit 1 Stunde an einem Problem das ich selbst mit Hilfe der SuFu nicht gelöst bekomme... Ich erstelle zur Laufzeit ein Objekt. Das ist ja auch kein Problem. Dann weise ich dem Objekt mit
Delphi-Quellcode:
das Event zu.
OBJNAME.OnKeyDown := TestUnit.EventKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); Das event ist in der TestUnit so fediniert:
Delphi-Quellcode:
doch er sagt mir immer "Nicht genügend wirkliche Parameter"
procedure EventKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); Was mache ich hier falsch?! :wall: |
Re: Kann Event nicht zuweisen! Wieso?
Die Parameter musst bzw. darfst du beim zuweisen nicht angeben.
Delphi-Quellcode:
MfG Alaitoc
OBJNAME.OnKeyDown := TestUnit.EventKeyDown;
|
Re: Kann Event nicht zuweisen! Wieso?
Zitat:
hab ich schon ausprobiert ;-) dann kommt folgendes: E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur' ich bin noch immer ratlos... habe ja schon in früheren projekten events angehängt... aber dieses mal klappts einfach nicht :-( |
Re: Kann Event nicht zuweisen! Wieso?
Deine Ereignisprozedur muss eine Methode einer Klasse sein.
|
Re: Kann Event nicht zuweisen! Wieso?
methode einer klasse....
okay, ich werde mal eine klasse draus basteln und schauen obs dann funktioniert. im moment hab ich nur reine prozeduren in der testunit |
Re: Kann Event nicht zuweisen! Wieso?
Zitat:
|
Re: Kann Event nicht zuweisen! Wieso?
Der Compiler sagt wirklich was von "ungenügend Parametern"
nichts von "Prozedur kann nicht auf Methodenzeiger zugewiesen werden"? Wenn dem so ist, dann kannst du mal versuchen den bei Methoden "versteckten" Self-Parameter mit anzugeben.
Delphi-Quellcode:
procedure EventKeyDown(Self, Sender: TObject; var Key: Word; Shift: TShiftState);
Zitat:
(darum wird bei Methoden ja auch die Instanz der zugehörigen Klasse mit gespeichert und als Self weitergegeben) |
Re: Kann Event nicht zuweisen! Wieso?
Da procedure EventKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); fehlte of object; also
Delphi-Quellcode:
procedure EventKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState) of object; |
Re: Kann Event nicht zuweisen! Wieso?
Zitat:
Eine Prozedur kann man nicht so deklarieren. |
Re: Kann Event nicht zuweisen! Wieso?
Hallo,
of object kann bei Prozedurtypen verwendet.
Delphi-Quellcode:
Das ist aber ein anderes Thema.
type
TMyProc = procedure(x: Integer) of object; Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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