Ich spiele gerade mit dem TJvInspector rum und habe schon gemerkt, dass er mächtig ist, aber auch schwer zu handhaben ist (mangels Dokumentation). Da Delphi Records nicht mit Lautzeit-Typinformationen ausstattet, kann man sie nicht so einfach über den Inspector einstellen. Ich würde jetzt gerne selber im Inspector etwas bauen, was so ähnlich aussieht, wie für TFont: Ein Editor (also der Knopf mit den 3 Punkten) und gleichzeitig aufklappbar machen, um dort die Eigenschaften einstellen zu können.
Frage ist: Wie genau muss man die eigene Klasse anlegen, damit das geht? Und wie registriere ich diese dann für den Inspector?
Aktuell sieht es so aus:
Delphi-Quellcode:
TAndorraColorEditor = class(TJvInspectorClassItem)
protected
function GetDisplayValue: string; override;
procedure Edit; override;
public
constructor Create(const AParent: TJvCustomInspectorItem; const AData: TJvCustomInspectorData); override;
end;
{...}
constructor TAndorraColorEditor.Create(const AParent: TJvCustomInspectorItem; const AData: TJvCustomInspectorData);
begin
inherited;
RenderAsCategory := True;
CreateMemberItems := False;
end;
procedure TAndorraColorEditor.Edit;
begin
inherited;
end;
function TAndorraColorEditor.GetDisplayValue: string;
begin
Result := '(TAndorraColor)';
end;
initialization
tf.Kind := tkRecord;
tf.Name := 'TAndorraColor';
TJvCustomInspectorData.ItemRegister.Add(TJvInspectorTypeInfoRegItem.Create(TAndorraColorEditor, @tf)); // <- geht so schonmal nicht