Главная страница
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.014 c
14-83721
Calm
2003-05-05 15:44
2003.05.26
Моего поста не видно в ветке!


4-83786
den_c
2003-03-25 13:25
2003.05.26
Как получить Handle главного окна приложения в котором моя DLL


4-83818
bobo
2003-03-25 11:11
2003.05.26
В Rich edit вращением колесика мыши при нажатой левой кнопке можн


11-83428
sandrolich
2002-08-19 11:42
2003.05.26
Рисование KOL


1-83492
app
2003-05-15 12:46
2003.05.26
Помогите с алгоритмом (восстановлено)