Einzelnen Beitrag anzeigen

Hausmarke

Registriert seit: 5. Apr 2013
Ort: Sachsen
47 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Grundlegendes Verständnis - Actions und deren Registrierung

  Alt 1. Jul 2013, 10:10
@ U. Raabe: ich denke ich habe es soweit verstanden.
Man registriert die Actions und findet diese dann zur Entwurfszeit im Dialog der ActionList wieder.
Dazu ein paar fragen: was ist wenn die ActionList auf einem anderen Formular bzw. in einer anderen Unit verankert ist?
Wie teile ich dies dem RegisterActions Aufruf mit?

Ich habe aktuell folgendes:
Delphi-Quellcode:
type
  TMyBaseAction = class (TCustomAction)
    private
      FCaption: string;
      procedure SetCaption(const Value: string);

    public
      property Caption: string read FCaption write SetCaption;
      constructor Create(AOwner: TComponent); virtual;
      procedure ExecuteTarget(Target: TObject); override;
      procedure UpdateTarget(Target: TObject); override;

  end;

  TBrowseAction = class(TMyBaseAction)
    private

    public
      constructor Create(AOwner: TComponent); override;
      procedure ExecuteTarget(Target: TObject); override;
      procedure UpdateTarget(Target: TObject); override;

  end;


implementation

uses MainFrm;


{ TMyBaseAction }

constructor TMyBaseAction.Create(AOwner: TComponent);
begin
  inherited;
  Caption := 'New Action';
end;


procedure TMyBaseAction.ExecuteTarget(Target: TObject);
begin
  inherited;

end;

procedure TMyBaseAction.SetCaption(const Value: string);
begin
  FCaption := Value;
end;


procedure TMyBaseAction.UpdateTarget(Target: TObject);
begin
  inherited;

end;


{ TBrowseAction }

constructor TBrowseAction.Create(AOwner: TComponent);
begin
  inherited;
end;

procedure TBrowseAction.ExecuteTarget(Target: TObject);
begin
  inherited;
  showmessage('Execute');
end;

procedure TBrowseAction.UpdateTarget(Target: TObject);
begin
  inherited;
  showmessage('update');
end;

initialization
  RegisterActions('Datei', [TMyBaseAction], nil);

end.
,

Beim Ausführen schmeißt es mir die Exception 'Ungültige Aktionsregistrierung' entgegen.

Was mache ich falsch?

Geändert von Hausmarke ( 1. Jul 2013 um 10:20 Uhr)
  Mit Zitat antworten Zitat