Ich hänge mich mal hier dran...
Erst einmal danke an MaBuSE. Ich habe hier einige interessante Hinweise gefunden
(Die Bilder im
Beitrag 9 sind übrigens hübsch.
)
Nun zu meiner Frage:
Ich habe unter XE nun einen Propertyeditor für eine Komponete (TodDataSet) eingerichtet. Grundsätzlich funktioniert dies schon, aber es gibt ein paar unerwartete Details.
Anbei mal ein Screenshot, wie der Objektinspektor die Komponente standardmäßig anzeigt und wie mit registriertem Editor...
Ich kann jetzt mit Doppelklick mein Formular öffnen, hätte aber sonst gern die Originale Darstellung der SubPropertys. Insbesondere die Eigenschaft "Name" soll nicht dargestellt werden. Kann ich das auf Knopfdruck erreichen oder muss ich GetPropertys überschreiben?
aktueller Quelltext:
Delphi-Quellcode:
unit odPropNameEditor;
interface
uses
DesignEditors, DesignIntf;
type
TodPropNameEditor =
class(TClassProperty)
private
protected
public
function GetAttributes: TPropertyAttributes;
override;
procedure Edit;
override;
published
end;
implementation
uses
odPropNameEditorDialog;
{ TodPropNameEditor }
procedure TodPropNameEditor.Edit;
begin
ShowOdPropNameEditorDialog(
nil);
end;
function TodPropNameEditor.GetAttributes: TPropertyAttributes;
begin
Result :=
inherited GetAttributes + [paDialog];
end;
end.
*********************************************
unit odControlsEditorsRegister
platform;
interface
procedure Register;
implementation
uses
DesignIntf, odExpertEditor, odExpert, od_dataset, odPropNameEditor;
procedure Register;
begin
RegisterComponentEditor(TodExpert, TodExpertEditor);
RegisterPropertyEditor(TypeInfo(TodDataSet),
nil, '
', TodPropNameEditor);
end;
end.