Hallo,
ich habe eine TActionMainMenuBar. Der Menüeintrag "Extra" soll dynamisch mit einem Untermenü befüllt werden.
Diesen Testcode verwende ich
Code:
....
var i:Integer;
ExtraItem : TActionClientItem;
ExtraAction : TAction;
begin
for i := 0 to ActionManager.ActionBars[0].Items.count-1 do
begin
if StripHotkey(ActionManager.ActionBars[0].Items[i].Caption)='Extra' then
begin
ExtraItem:=ActionManager.ActionBars[0].Items[i].Items.Add;
ExtraItem.Caption:='TEST';
ExtraAction:=TAction.Create(ActionManager);
ExtraAction.Caption:='TEST';
ExtraAction.Enabled:=true;
ExtraItem.Action:=ExtraAction;
break;
end;
end;
...
Das funktioniert auch soweit. Das Problem ist nur, der Eintrag "Extra" bleibt deaktiv, man kann ihn nicht anklicken (siehe Screen), ABER wenn man zuerst einen anderen Eintrag anklickt und dann die Maus über "Extra" bewegt, dann geht das Menü auf.
Was mache ich den falsch? Warum bleibt Extra deaktiv?
Grüße
Christof
Nachtrag: ich habe der TAction vom "Extra" Menüpunkt noch eine onExecute procedure hinzugefügt (ohne Code, da ich die hier eigentlich gar nicht brauche) und damit ist der Menüpunkt aktiv. Finde ich zwar nicht logisch, da ich bei den anderen beiden Menüpunkten "Programm" und "Verwaltung" auch kein onExecute habe (die sind allerdings nicht dynamisch), aber gut, wenn es funktioniert.