Les listes d'actions vous permettent de regrouper des actions. Ces actions pouvant être déclenchées par différents composants.
Bon, dit comme cela, on ne peut comprendre l'intérêt de la chose.
Prenons par exemple une procédure SwapEcran qui permet de faire passer la fenêtre de notre application de Minimized à Maximized losqu'elle est Minimized et de Maximized à Minimized.lorsqu'elle est Maximized.
Admettons que c'est une fonctionnalité si importante que l'on va vouloir la déclencher d'un peu partout à l'aide de boutons, de menu déroulant et de menu contextuel.
Si la fenêtre est Minimized, vous voulez que dans les menus et sur le bouton apparaisse le libellé "Agrandir écran"
Si la fenêtre est Maximized, vous voulez que dans les menus et sur le bouton apparaisse le libellé "Taille écran normal"
Sans utiliser les listes d'action, il faudrait dans SwapEcran, modifier les captions des Items des menus et des boutons en fonction de l'état de la fenêtre. Avec les TListAction, il suffit de gérer le libellé associé à l'action et tous les libellé des Items de menu et des boutons associés à l'action sont modifiés automatiquement.
Il en va de même pour les images associées, la propriété Checked, Enabled etc..
Utilisation d'un TListAction :
Des captions communs :
*
Placez un TListAction sur votre Form (onglet standard).
*
Placez un MainMenu
*
Placez un PopMenu . Affectez PopupMenu1 à la propriété PopupMenu de Form1.
*
Placez un bouton
*
Double Cliquez sur votre TListAction
*
Cliquez sur pour créer une action. Ecrivez par exemple ActionSwapEcran dans sa propriété Name. et Agrandir écran dans sa propriété Caption.
*
Pour chacun des 2 menus, créez un nouvel Item et sélectionnez ActionSwapEcran dans sa propriété Action.
*
Sélectionnez également ActionSwapEcran pour la propriété Action du bouton.
Dès maintenant, vous pouvez voir que les Items des menus concernés et le caption de notre bouton affichent Agrandir écran.
Par contre, si vous lancez le programme, tous les éléments sont en grisés (inactif). Normal, aucune action n'a encore étée définie.
Des actions communes :
Pour indiquer l'action commune, rien de plus simple : Double cliquez sur le TListaAction puis sélectionnez sur notre action (ActionSwapEcran) et double cliquez sur son évènement OnExecute et implémentez le ainsi :
procedure TForm1.ActionSwapEcranExecute
(Sender: TObject);
begin
if Form1.WindowState<>wsNormal then
begin
Form1.WindowState:=wsNormal;
ActionSwapEcran.Caption:='Agrandir écran';
end
else
begin
Form1.WindowState:=wsMaximized;
ActionSwapEcran.Caption:='Taille écran normal';
end;
end;
Voilà, c'est tout. Cette action se déclenchera à chaque fois que vous cliquerez sur le bouton ou sur un des 2 items du menu. Les captions se mettent automatiquement à jour pour tous ces éléments.


