Ich verwende das TIPropertyGrid und dort werden natürlich nur published properties angezeigt. Bestimmte Eigenschaften lassen sich aber nicht als published deklarieren wie beispielsweise Objekte (nicht Klassen) und Array Properties.
Ein stark vereinfachtes Beispiel. Der Originalvektor hat auch Methoden.
Code: Alles auswählen
type
TVec3 = object
private
[...]
published
property x: Single read FX write FX;
property y: Single read FY write FY;
property z: Single read FZ write FZ;
end;
TTestObject = class
private
[...]
public
property Position: TVec3 read FPosition write FPosition; //
property Children [ Index: Integer ]: TTestObject read GetChildren write SetChildren; //Die Objekte sollen als Unterobjekte angezeigt werden.
published
property Count: Integer read GetCount write SetCount;
end;
- Gibt es eine Möglichkeit im TIPropertyGrid (eventuell über TPropertyEditor) zusätzliche Einträge anzuzeigen, die eigentlich nicht über die RTTI zugänglich sind?
- Gibt es eine ein Tutorial um die RTTI selber auszulesen um einen eigenen Objektinspektor zu schreiben?
- Gibt es irgendwo eine Erklärung zu den in TypInfo deklarierten Typen wie TPropInfo und wie diese organisiert sind?
- Ungerne würde ich die Objekte zu Klassen machen oder einem Array, da der Editor nur zweitrangig ist und Klassen für z.B. Vektoren eher unpraktisch sind.