Recensement d'actions

De RAD Studio
Aller à : navigation, rechercher

Remonter à Gestion des actions VCL à l'aide d'une liste d'actions


Si vous écrivez vos propres actions, il est possible de les recenser pour les faire apparaître dans l'éditeur de liste d'actions. Vous les recensez ou vous en annulez le recensement en utilisant les routines globales System.Actions.RegisterActions et System.Actions.UnRegisterActions :

procedure RegisterActions(const CategoryName: string;
  const AClasses: array of TBasicActionClass;
  Resource: TComponentClass);
procedure UnRegisterActions(
  const AClasses: array of TBasicActionClass);
extern PACKAGE void __fastcall RegisterActions(
  const AnsiString CategoryName,
  TMetaClass* const * AClasses, const int AClasses_Size,
  TMetaClass* Resource);
extern PACKAGE void __fastcall UnRegisterActions(
  TMetaClass* const * AClasses,
  const int AClasses_Size);

Quand vous appelez System.Actions.RegisterActions, les actions recensées apparaissent dans l'éditeur de liste d'actions afin d'être utilisées dans vos applications. Vous pouvez spécifier un nom de catégorie afin d'organiser vos actions, ainsi qu'un paramètre Resource permettant de fournir des valeurs de propriété par défaut.

Par exemple, le code suivant recense dans l'EDI les actions standard :

{ recensement des actions standard }
RegisterActions('', [TAction], nil);
RegisterActions('Edit', 
  [TEditCut, TEditCopy, TEditPaste],
  TStandardActions);
RegisterActions('Window',
  [TWindowClose, TWindowCascade, TWindowTileHorizontal,
   TWindowTileVertical, TWindowMinimizeAll, TWindowArrange],
  TStandardActions);
namespace MyAction
{
 void __fastcall PACKAGE Register() {
   // du code vient ici pour recenser des composants et des éditeurs
   TMetaClass classes[2] = {__classid(TMyAction1),
     __classid(TMyAction2)};
   RegisterActions("MySpecialActions", classes, 1, NULL);
   }
}

Quand vous appelez System.Actions.UnRegisterActions, les actions n'apparaissent plus dans l'éditeur de liste d'actions.

Voir aussi