Hallo,
ich erstelle zur Laufzeit einen neuen PopupMenu Eintrag:
newMenuItem := TMenuItem.Create(Self);
newMenuItem.Caption := ‚klick hier‘;
newMenuItem.name:=‚testname‘;
newMenuItem.OnLick=ProcedureXYZ;
Das klappt problemlos soweit problemlos, beim Klick darauf wird brav die Procedure ProcedureXYZ ausgeführt.
Mein Problem ist aber folgendes:
ich möchte der Prozedur einen Parameter mitgeben, in dem Fall einen String, der eine URL enthält, die dann in der Procedure aufgerufen wird. Wenn ich aber in meiner ProcedureXYZ eine Variable in der Deklaration hinzufüge, kann sie nicht mehr durch das Popupmenu aufgerufen werden.
meine deklaration : Procedure ProcedureXYZ(Sender : TObject; url : string);
Als Fehler kommt : [Error] Unit1.pas(53): Incompatible types: ‚TNotifyEvent‘ and ‚procedure, untyped pointer or untyped parameter‘
Ich versuche sie so aufzurufen : procedureXYZ(MainWindow,‚url‘);
Wenn ich keinen zusätzlichen Parameter in der procedure habe, will delphi nicht, dass ich den Sender, also das TObject (in meinem Fall MainWindow) angebe. Wieso macht Delphi so einen Mist? Es sollte doch wohl möglich sein einen Parameter zu übergeben!
Danke für jede Hilfe!
Daniel