![]() |
TPopUpMenu Einträge zur Laufzeit ändern OnClick
Hallo,
ich brauche Hilfe bei einem kleinen Problem, ich hab schon Google sowie das Forum hier befragt, die dort angewendeten Lösungen funktionieren bei mir leider nicht. Aber ersteinmal das Problem: Mein Programm fügt zur Laufzeit einem existierenden PopUpMenu einzelnde Items hinzu. Das funktioniert auch problemlos. Nun, es liegt auf der Hand, dass man die Items aus dem PopUpMenu auch mit einer procedure verknüpfen möchte und das bereitet mir Kopfschmerzen. Wie Luckie hier schreibt ![]()
Delphi-Quellcode:
Mit der Fehlermeldung:
NewItem.OnClick := OnMenuItemClick;
[Fehler] Unit2.pas(124): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur' Ich hab nun schon mehrere Lösungsansätze angeschaut und jedes mal wird es so gelöst (Ohne der OnClick Procedure einen Sender zuzuweisen) und es funktioniert bei mir nicht, entweder mit der eben erwähnten Fehlermedlung oder anderen... Habe nun schon nahezu alle möglichen schreibweisen durch. Ich hoffe es liegt an einer falschen Deklaration eienr Variabel, hier mal die ganze Procedure:
Delphi-Quellcode:
Ohne die Zeile NewItem.OnClick := OnMenuItemClick; funktioniert es... nur das OnClick lässt sich nicht zuordnen.... Hilfe!
procedure VariableMenuItemAdd(Menu: TPopUpMenu; ItemCaption: String);
var NewItem: TMenuItem; begin NewItem:=TMenuItem.Create(Form2); inc(counter); NewItem.Caption:=ItemCaption; NewItem.Tag:=counter; NewItem.OnClick := OnMenuItemClick; Menu.Items.Add(NewItem); end; Meine Vermutung, da bereits ein menu vorhanden ist muss ich mit NewItem:=TMenuItem.Create(Form2); kein neues erstellen, aber wie soll es sonst gehen? Danke für die Hilfe Edit: Die Vermutung ist falsch erstelle ja garkein zweites Menu |
Re: TPopUpMenu Einträge zur Laufzeit ändern OnClick
VariableMenuItemAdd() muss eine Methode sein (d.h. im private-Abschnitt deklariert)
|
Re: TPopUpMenu Einträge zur Laufzeit ändern OnClick
Erst einmal herzlich willkommen in der DP!
Zeig doch mal bitte, wie Du die ONClick-Prozedur deklariert hast. Diese muss zum einen eine Methode des Objektes sein und zum anderen auch eine bestimmte Form haben. Gruß |
Re: TPopUpMenu Einträge zur Laufzeit ändern OnClick
Dies sind komischer Weise nicht meine ersten Beiträge, aber trozdem danke für die Begrüßung ;)
Da wird der Fehler liegen, sie ist nirgendwo deklariert... Edit: Du sprichst die spezielle Form an, ich habe leider keinen blassen Schimmer wie diese aussieht... Kannst du mir auf die Sprünge helfen? MfG Edit2: Habs.. man musste vor die eigenen procedures noch nen TForm2 hängen thx! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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