Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Dynamisches Menü mit Panels und Collection

  Alt 29. Jan 2008, 16:02
Also ich mag mich jetzt nicht durch deinen ganzen Sourcecode kämpfen, würde dir aber folgenden Tipp geben:
Erstelle auf dem Formular ein ganz "normales Pupupmenue".
Dein Einstieg ist dann:
Delphi-Quellcode:
var
  rootitem : TMenuItem;
begin
  rootitem := PopupMenu1.Items;
Die Klasse TMenuItem hat die Eigenschaft, dass sie baumartige Strukturen (also Menustrukturen) aufbaut.
Deine Aufgabe ist nun, die TMenuItem-Objekte zur Laufzeit auf Panels zu übertragen.
Jedes Panel ist dann mit einem TMenuItem verbunden.
Wenn das Panel geklickt wird, wird im Hintergrund das TMenuItem angeclickt.
Delphi-Quellcode:
var
  item : TMenuItem;
begin
  // Im Sender steckt ein Panel oder JvPanel oder was auch immer
  // die Verbindung wurde zuvor über das Tag Property zum MenuItem hergestellt
  TMenuItem((sender as TPanel).Tag).Click; // Menuaktion auslösen
Nachtrag:
die Sache geht noch einfacher, wenn du eine ActionList und ein leeren Toolbar nimmst.
Zur Laufzeit kann man nun Toolbuttons erzeugen und mit einer TBasicAction aus der ActionList verbinden.
Andreas
  Mit Zitat antworten Zitat