AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Dynamisch erstelltes PopUpMenu Unter- Untereinträge hinzufügen / löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamisch erstelltes PopUpMenu Unter- Untereinträge hinzufügen / löschen

Ein Thema von Metschu · begonnen am 29. Jan 2012 · letzter Beitrag vom 29. Jan 2012
Antwort Antwort
Metschu

Registriert seit: 31. Dez 2006
151 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Dynamisch erstelltes PopUpMenu Unter- Untereinträge hinzufügen / löschen

  Alt 29. Jan 2012, 21:21
Hallo zusammen!

Ich stehe irgendwie auf dem Schlauch. Ich versuche bei einem Dynamisch erstelltem PopUpMenu die Unter- Untereinträge hinzuzufügen oder zu löschen.
Die Untereinträge erstelle ich wie folgt:

PopupMenu.Items.Items[popUpMenu.Items.IndexOf(Menu1)].Add(NewItem('Untermenu1',0,False,True,Aktion,0,'');

Über PopUp.items.FindItem('Untermenu1') sollte ich ja den Index des eben erstellten Untermenüs finden, nur bekomme ich da immer "-1" zurück.

Ich schätze mal das das Unter-Untermenü nach folgendem Schema erstellt werden muss:

PopUpMenu.items.items[Itemindex von Menu1].items[Itemindex von Untermenu1].Add(...)

Kann mir einer mal nen Tip geben, wie ich da weiter komme?

Vielen Dank schonmal!
Torsten
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Dynamisch erstelltes PopUpMenu Unter- Untereinträge hinzufügen / löschen

  Alt 29. Jan 2012, 22:00
Merke dir einfach die erstellten Menüeinträge, z.B. in einem Dictionary oder einer Liste, dann stellt sich das Problem diese wiederzufinden gar nicht...
Mit einem Dictionary kannst du z.B. gleich einen Bezug zur dahinterliegenden Datenstruktur herstellen, aus der du die Daten für die Einträge ausliest.

So wie du es versuchst ist es ziemlich unübersichtlich.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Dynamisch erstelltes PopUpMenu Unter- Untereinträge hinzufügen / löschen

  Alt 29. Jan 2012, 22:13
Siehst du, genau deßhalb verwendet man einfach keine Texte aus der GUI,
Text, Caption und Co. kann sich ändern und schon findet man nix mehr.
Auch macht es sich blöde, wenn man die Anwendung irgendwann mal lokaliseren möchte.

Hast du mal das Menü über die Tastatur geöffnet oder ist dir bei Menüs/Kontextmenüs mal aufgefallen, daß dort Buchstaben unterstichen sind? (seit XP/Vista werden diese zwar nicht mehr standardmäßig unterstichen, bzw. es wird nicht mehr angezeigt, aber sie sind dennoch da)

Tja, die Delphi-Menüs belegen automatisch Buchstaben, wenn du vergessen hast selber diese vorzugeben.
Und schwups, schon stimmt der Text nicht mehr überein ... also selber Schuld, wenn du solche Texte so verwendest.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: Dynamisch erstelltes PopUpMenu Unter- Untereinträge hinzufügen / löschen

  Alt 29. Jan 2012, 22:15
Über PopUp.items.FindItem('Untermenu1') sollte ich ja den Index des eben erstellten Untermenüs finden, nur bekomme ich da immer "-1" zurück.
Das wundert mich nicht! PopupMenu.Items.Items[popUpMenu.Items.IndexOf(Menu1)].FindItem('Untermenu1') sollte da mehr Erfolg haben.

Das Erstellen geht übrigens einfacher: Menu1.Add(NewItem('Untermenu1',0,False,True,Aktion,0,''));
Wobei sich die Suche dann auch auf Menu1.FindItem('Untermenu1'); beschränken kann.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Metschu

Registriert seit: 31. Dez 2006
151 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: Dynamisch erstelltes PopUpMenu Unter- Untereinträge hinzufügen / löschen

  Alt 29. Jan 2012, 22:53
Menu1.Add(NewItem('Untermenu1',0,False,True,Aktion,0,''));
Bei genauerer Betrachtung eigentlich Logisch
Danke für den Schubs in die Richtige Richtung...
Torsten
  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 17:14 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