AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TPopUpMenu Einträge zur Laufzeit ändern OnClick
Thema durchsuchen
Ansicht
Themen-Optionen

TPopUpMenu Einträge zur Laufzeit ändern OnClick

Ein Thema von venc · begonnen am 2. Jan 2009 · letzter Beitrag vom 2. Jan 2009
Antwort Antwort
venc

Registriert seit: 4. Jan 2007
2 Beiträge
 
Delphi 2005 Personal
 
#1

TPopUpMenu Einträge zur Laufzeit ändern OnClick

  Alt 2. Jan 2009, 17:48
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 Link meckert mein Delphi 2005 leider, an folgender Stelle bleibt der compiler stehen:

NewItem.OnClick := OnMenuItemClick; Mit der Fehlermeldung:
[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:
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;
Ohne die Zeile NewItem.OnClick := OnMenuItemClick; funktioniert es... nur das OnClick lässt sich nicht zuordnen.... Hilfe!
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
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: TPopUpMenu Einträge zur Laufzeit ändern OnClick

  Alt 2. Jan 2009, 17:54
VariableMenuItemAdd() muss eine Methode sein (d.h. im private-Abschnitt deklariert)
Ralph
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.875 Beiträge
 
Delphi 12 Athens
 
#3

Re: TPopUpMenu Einträge zur Laufzeit ändern OnClick

  Alt 2. Jan 2009, 17:56
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ß
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
venc

Registriert seit: 4. Jan 2007
2 Beiträge
 
Delphi 2005 Personal
 
#4

Re: TPopUpMenu Einträge zur Laufzeit ändern OnClick

  Alt 2. Jan 2009, 18:00
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!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz