アクションの登録
アクション リストを使用した VCL アクションの処理 への移動
独自のアクションを記述したら、それらのアクションを登録して、アクション リスト エディタに表示されるようにすることができます。アクションの登録/登録解除を行うには、次のようなグローバル ルーチン System.Actions.RegisterActions および 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);
System.Actions.RegisterActions を呼び出すと、登録したアクションは、アクション リスト エディタに表示され、アプリケーションで使用することができます。カテゴリ名を指定してアクションを整理することができます。また、Resource
パラメータを使用して、デフォルトのプロパティ値を指定することもできます。
たとえば、次のコードでは、標準アクションを IDE に登録しています。
{ Standard action registration }
RegisterActions('', [TAction], nil);
RegisterActions('Edit',
[TEditCut, TEditCopy, TEditPaste],
TStandardActions);
RegisterActions('Window',
[TWindowClose, TWindowCascade, TWindowTileHorizontal,
TWindowTileVertical, TWindowMinimizeAll, TWindowArrange],
TStandardActions);
namespace MyAction
{
void __fastcall PACKAGE Register() {
// code goes here to register any components and editors
TMetaClass classes[2] = {__classid(TMyAction1),
__classid(TMyAction2)};
RegisterActions("MySpecialActions", classes, 1, NULL);
}
}
System.Actions.UnRegisterActions を呼び出すと、アクションはアクション リスト エディタに表示されなくなります。