www.demi-s.narod.ru

Delphi
Статьи:

· Интерфейс

· WinAPI

· Компоненты

· Базы данных

· ShellAPI



Разное


Добавление новых Standard Actions

Вы можете регистрировать Ваши собственные классы действий при помощи RegisterActions.

Ниже приведен полный пример действия, печатающего текущую форму.

Не забудьте добавить этот модуль во время проектирования.

unit AjsStdActions;

interface

uses windows, StdActns, classes, forms;

type
  TWindowPrint = class(TWindowAction)
  public
    constructor Create(AOwner: TComponent); override;
    procedure ExecuteTarget(Target: TObject); override;
    function HandlesTarget(Target: TObject): Boolean; override;
    procedure UpdateTarget(Target: TObject); override;
  end;

procedure Register;

implementation

uses ActnList, Dialogs, Menus;

{ TWindowPrint }

constructor TWindowPrint.Create(AOwner: TComponent);
begin
  inherited;
  // новый по умолчанию Shortcut
  ShortCut := TextToShortCut('F3');
  // новый по умолчанию Caption
  Caption  := 'Print Window';
end;

procedure TWindowPrint.ExecuteTarget(Target: TObject);
begin
   // только для проверки
   ShowMessage('Printing Windows....');
   // печать текущей формы
   GetForm(Target).Print;
end;

function TWindowPrint.HandlesTarget(Target: TObject): Boolean;
begin
  Result := ((Form <> nil) and (Target = Form) or
    (Form = nil) and (Target is TForm));
end;

procedure TWindowPrint.UpdateTarget(Target: TObject);
begin
   // отмененное поведение TWindow.UpdateTarget
end;

procedure Register;
begin
   // регистрируем наш новый класс действия
   RegisterActions('window', [TWindowPrint], nil);
end;

end.

Hosted by uCoz