Вниз
Скачать: CL | DM;

Регистрация своего TAction   Найти похожие ветки 

 
Валерий   (2003-05-15 14:01) [0]

Подскажите, пожалуйста - как правильно зарегистрировать свой TAction с
помощью функции RegisterActions() (в Delphi 7). Мой TMyAction нормально
регистрируется, не получается только задать значения его свойств по умолчанию.
В Help по функции RegisterActions() сказано что необходимо третьим параметром
передать класс-потомок TDataModule, содержащий экземпляр регистрируемого
TMyAction с установленными значениями по умолчанию его свойств.
У меня это выглядит так:
Эти 2 модуля содержатся в одном пакете. Пакет компилируется и инсталлируется
без ошибок. TMyAction регистрируется, но TMyAction.Caption и TMyAction.Hint
не имеют заданных мною значений по умолчанию.

UNIT MyAction;

interface

TMyAction = class(TDataSetAction)
public
...
published
...
end;

procedure Register;

implementation

uses MyActionDM;

procedure Register;
begin
RegisterActions("Dataset",[TMyAction],TDMMyAction);
end;

...



UNIT MyActionDM;

interface

uses MyAction;

type
TDMMyAction = class(TDataModule)
procedure DataModuleCreate(Sender: TObject); // обработчик OnCreate
procedure DataModuleDestroy(Sender: TObject); // обработчик OnDestroy
private
{ Private declarations }
public
{ Public declarations }
MyAction: TMyAction;
end;

var
DMMyAction: TDMMyAction;

implementation

{$R *.dfm}

procedure TDMMyAction.DataModuleCreate(Sender: TObject);
begin
MyAction:=TMyAction.Create(nil);
MyAction.Caption:="Отмеить все изменения";
MyAction.Hint:="Отменить все изменения|Отменить все, еще не сохраненные, изменения";
end;

procedure TDMMyAction.DataModuleDestroy(Sender: TObject);
begin
MyAction.Free;
end;

...


 
Макс Черных ©   (2003-05-15 14:52) [1]

Все значения по умолчанию для action берутся из *.dfm файла.
Вы же создаете все в runtime. Естественно, при этом ничего не будет работать. Надо просто создать DM и в DesignTime задать
необходимые параметры.
Посмотрите как это сделано для стандартных Action:
C:\Program Files\Borland\Delphi7\Lib\ActnRes.dfm
C:\Program Files\Borland\Delphi7\Lib\DBActRes.dfm

и т.д.


 
Валерий   (2003-05-16 00:08) [2]

Макс, спасибо !
Все получилось.
Но после того как я зарегистрировал свой, условно говоря, TMyAction в
категории "Dataset" - возникла новая неприятность. Cтандартные Action-ы из
категории "Dataset" стали добавляться в ActionList без иконок. ( У своего
TMyAction я задал иконку и она не теряется )


 
Валерий   (2003-05-16 00:28) [3]

P.S.
У стандартных Action из категории, в которую я зарегистрировал свой TMyAction, пропали не только иконки но и другие значения свойств по умолчанию. Ситуация не исправилась после того как я деинсталировал свой пакет в Component|Install Packeges... Существует процедура UnRegisterActions(), но куда ее вставить ?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
6-83633
trash
2003-03-26 17:52
2003.05.26
NMHTTP с прокси без кеширования


1-83494
MegaVolt
2003-05-14 11:40
2003.05.26
Как правильно добавлять данные в StringGrid?


14-83740
_Igorek
2003-05-07 11:52
2003.05.26
Полюбуйтесь на глюк компилятора в D6


3-83370
Ruff
2003-05-05 16:30
2003.05.26
Тормоза при работе с DBF


1-83554
Stalin
2003-05-13 12:18
2003.05.26
NetWork Initialization Faild




   Наверх