@ 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?