Zum Zeitpunkt des Menüaufbaus kennst Du doch das Plugin und kannst auf seine Funktionen zugreifen?
Würde Dir sowas (jetzt mal so dahingesponnenens) helfen?
'ne Routine im Plugin:
Delphi-Quellcode:
function tMeinPlugin.Ereigniszuweisung(Menu : TMenuItem) : boolean;
begin
case Menu.Tag of
0 : Menu.OnClick := OnClickRoutine0;
1 : Menu.OnClick := OnClickRoutine1;
2 : Menu.OnClick := OnClickRoutine2;
3 : Menu.OnClick := OnClickRoutine3;
end;
Result := Assigend(Menu.OnClick);
end;
Und sowas in der Art in Deinem Programm (das Menü ist bereits fertig aufgebaut):
Delphi-Quellcode:
for i := 0 to Application.Mainmenu.Items.Count - 1 do begin
if not MeinPlugin.Ereigniszuweisung(Application.Mainmenu.Items[i]) then begin
// Fehlermeldung?
Application.Mainmenu.Items[i].Visible := False;
Application.Mainmenu.Items[i].Enabled := False;
// oder was auch immer ...
end;
end;
Oder:
Delphi-Quellcode:
// Hier wird irgendwie aus der XML das Menü aufgebaut
AktuellesMenueItem.Caption := Wert aus der
XML;
AktuellesMenueItem.Tag := Wert aus der
XML;
MeinPlugin.Ereigniszuweisung(AktuellesMenueItem);
Keine Ahnung, ob das auch nur ansatzweise funktioniert.