Der JvInspector arbeitet mit
RTTI. Alle published-Properties von Objekten, die von TPersistent abgeleitet sind, haben
RTTI aktiviert. Diese
RTTI liest der JvInspector aus und stellt diese dann dar.
Sagen wir mal, du hast eine Klasse:
Delphi-Quellcode:
type
TMyClass = class(TPersistent)
private
FBlub : string;
FHm : integer;
public
property Hm: integer read FHm write FHm;
published
property Blub: string read FBlub write FBlub;
end;
Wenn du jetzt diese Klassen in JvInspector hineinlädst, wirst du nur die Eigenschaft "Blub" sehen, "Hm" siehst du nicht, da Hm nicht published ist und somit keine
RTTI hat.
Aber du kannst die
RTTI noch hinzufügen lassen, wenn du eine neue Klasse davon ableitest und die property "Hm" in den Published-Bereich "verschiebst"
Delphi-Quellcode:
type
TMyObj = class(TMyClass)
published
property Hm;
end;
Wenn du jetzt die neue Klassen in JvInspector hineinlädst, wirst du beide Eingenschaften sehen.
Wenn du jetzt von TLabel nur bestimmte Sachen in den Inspektor laden willst, hab ich auch noch schnell nen Quelltext für dich. Diesen musst du einfach in das obige Beispiel von mir hineinkopieren.
Delphi-Quellcode:
uses
TypInfo;
procedure TForm1.ShowObject(aObj: TObject);
begin
JvInspector1.Root.Clear;
TJvInspectorPropData.New(JvInspector1.Root, aObj, GetPropInfo(aObj, 'Left'));
TJvInspectorPropData.New(JvInspector1.Root, aObj, GetPropInfo(aObj, 'Top'));
TJvInspectorPropData.New(JvInspector1.Root, aObj, GetPropInfo(aObj, 'Align'));
end;