2010-08-26 3 views
1

Comment activer les boutons de ruban qui sont désactivés après avoir cliqué sur le bouton plus de commandes dans un quickaccessbar en utilisant Delphi?rubans de contrôle

Répondre

8

Ceci est un bug

rapport Quality Central 70342 connu:

Lorsque vous utilisez les contrôles du ruban, si l'on ajoute une barre d'outils d'accès rapide, puis lors de l'exécution choisit l'option « Autres commandes » à personnaliser la barre d'outils d'accès rapide, beaucoup (mais pas toujours tous) les composants d'action dans divers groupes deviendront définitivement désactivés.

S'il vous plaît voir le rapport lui-même pour plus d'informations: http://qc.embarcadero.com/wc/qcmain.aspx?d=70342

Le rapport est encore ouvert, donc je ne peux pas avoir été résolu D2011 non plus, mais la qualité centrale pourrait être en retard par rapport un peu.

Mise à jour

Le rapport indique qu'il n'y a pas de travail autour, mais Jack Sudarev a posté un dans les commentaires:

procedure TForm6.ActionManager1StateChange(Sender: TObject); 
begin 
UpdateActions(ActionManager1); 
end; 

procedure TForm6.UpdateActions(ActionManager: TActionManager); 
var 
    i: Integer; 
begin 
    if not Assigned(ActionManager) then 
    Exit; 

    for i := 0 to ActionManager.ActionCount - 1 do 
    begin 
    (ActionManager.Actions[i] as TAction).Enabled := False; 
    (ActionManager.Actions[i] as TAction).Enabled := True;  
    end; 
end; 
+0

+1 pour un effort supplémentaire dans la recherche de solution de contournement –

+0

Génial Cela fonctionne Merci beaucoup – Rajesh

+0

Notez que [QualityCentral a été ut down] (https://community.embarcadero.com/blogs/entry/quality-keeps-moving-forward), vous ne pouvez plus accéder aux liens 'qc.embarcadero.com'. Si vous avez besoin d'accéder aux anciennes données de QC, regardez [QCScraper] (http://www.uweraabe.de/Blog/2017/06/09/how-to-save-qualitycentral/). –

1

C'est ce que je l'ai fait:

procedure TmainTranslatform.MyUpdateActions(ActionManager: TActionManager); 
var 
    i: Integer; 
begin 
    if not Assigned(ActionManager) then 
    Exit; 

    for i := 0 to ActionManager.ActionCount - 1 do 
    begin 
    if (ActionManager.Actions[i] is TFileOpen) then 
    begin 
    (ActionManager.Actions[i] as TFileOpen).Enabled := False; 
    (ActionManager.Actions[i] as TFileOpen).Enabled := True; 

    end; 
    if (ActionManager.Actions[i] is TAction) then 
    begin 
    (ActionManager.Actions[i] as TAction).Enabled := False; 
    (ActionManager.Actions[i] as TAction).Enabled := True; 
    end; 
    end; 
end; 
Questions connexes