2009-07-27 9 views
6

Ich bin vertraut mit der Verwendung von Delphi RTTI für den Zugriff auf "einfache" Eigenschaften (Ints/Enums/Strings, etc.), aber ich kann nicht verstehen, wie man mit Array-Eigenschaften arbeiten.Wie kann ich mit RTTI auf Delphi Array-Eigenschaften zugreifen?

Ich bin auf der Suche nach Array-Entsprechungen für die Aufrufe GetPropValue/SetPropValue. Ich würde erwarten, ähnliche zu diesen zu sehen, aber einen zusätzlichen "Index" -Parameter nehmend, aber scheint nichts in der Hilfe von typinfo Einheit zu finden.

+1

Meinst du "Eigenschaften des Array-Typs" oder "indizierte Eigenschaften", hier? –

+0

Ich meine diese: "Property Coords [Index: Integer]: Longint lesen GetCoord schreiben SetCoord;" hoffentlich ist das eine Array-Eigenschaft? – Roddy

Antwort

5

Arrays und Array-Eigenschaften können keine RTTI für sie bis D2009 haben. Aber als Barry Kelly auf der Delphi Live-Konferenz über ein verbessertes RTTI-System sprach, das für D2010 geplant ist, erwähnte er, dass alles, einschließlich Arrays, RTTI verfügbar hätte. Das ist also ein Feature, auf das man sich freuen kann ...

+3

Arrays haben RTTI - so ziemlich alle Typen werden RTTI haben. "Array-Eigenschaften", d.h. indizierte Eigenschaften, nicht jedoch in D + 1. –

+0

Oh, werden sie nicht? Ich muss es dann falsch verstanden haben. –

3

Nicht sicher, ob es möglich ist. Array-Eigenschaften können nicht veröffentlicht werden, was bedeutet, dass sie RTTI nicht haben können.

Auch, wenn Sie die Komponenten im Objektinspektor betrachten. Dort sind keine Array-Eigenschaften. Alle Array-Eigenschaften haben eigene Editoren (oder ich muss einige übersehen haben).

Verwandte Themen