Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.26;
Скачать: 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 вся ветка

Текущий архив: 2003.05.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
4-83820
vvhedgehog
2003-03-31 17:17
2003.05.26
Написание своего компонента с отловом сообщений


14-83715
Dimaz-z
2003-05-06 21:27
2003.05.26
Народ, помогите, как програмно отправить SMS.


1-83504
Ricy
2003-05-13 13:23
2003.05.26
Слияние файлов


1-83557
Злая Маринка
2003-05-13 19:55
2003.05.26
Создание мноэжества image в run-time


14-83699
KIR
2003-05-05 12:59
2003.05.26
Событие OnCellClick компонента TDBGrid