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.