Hallo,
ich habe eine Compo geschrieben, ähnlich der ToolBar(
Win32). Nun möchte ich, das über die rechte
Maustaste und einen entsprechenden Menü-Eintrag die Buttons hinzugefügt werden können, um sie bei
Auswahl im
OI zu bearbeiten.
Eigendlich kein Problem dachte ich, aber irgendwie will es nicht so, wie es soll;-(
Vielleicht könnt ihr ja mal schauen:
Delphi-Quellcode:
type
TExToolButtonProperty = class(TComponentProperty)
public
procedure Edit; override;
end;
TExButtonEditor = class(TDefaultEditor)
protected
procedure EditProperty(const PropertyEditor: IProperty;
var Continue: Boolean); override;
public
procedure ExecuteVerb(Index: Integer); override;
function GetVerb(Index: Integer): string; override;
function GetVerbCount: Integer; override;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('ExTools', [TExToolBar]);
RegisterPropertyEditor(TypeInfo(TExToolButton), nil, '', TExToolButtonProperty);
end;
{ TExToolButtonProperty }
procedure TExToolButtonProperty.Edit;
var
ETB : TExToolButton;
begin
if (GetComponent(0) is TExToolBar) then
begin
ETB := TexToolButton.Create(TExToolBar(GetComponent(0)));
ETB.Parent := TExToolBar(GetComponent(0));
TExToolBar(GetComponent(0)).InsertButton(ETB);
end;
end;
{ TExButtonEditor }
procedure TExButtonEditor.EditProperty(const PropertyEditor: IProperty; var Continue: Boolean);
begin
if PropertyEditor.GetName = 'TExToolButtonProperty' then
begin
PropertyEditor.Edit;
Continue := False;
end;
end;
procedure TExButtonEditor.ExecuteVerb(Index: Integer);
begin
if Index = 0 then Edit;
end;
function TExButtonEditor.GetVerb(Index: Integer): string;
begin
if Index = 0 then
Result := 'ExToolButton hinzufügen'
else Result := '';
end;
function TExButtonEditor.GetVerbCount: Integer;
begin
Result := 1;
end;
end.
Für Hinweise wie immer dankbar,
Alter Mann