2009-10-12 11 views
5

Beachten Sie Folgendes:Wie bekomme ich ein Zugriffsfeld in Delphi mit RTTI?

TFieldType = class 
    fValue: string; 
end; 

TMainClass = class 
private 
    Ffield: TFieldType; 
public 
    function GetValue: string; 
end; 

In TMainClass.GetValue bin ich tryin Werte von TMainClass Felder erhalten:

function TMainClass.GetValue; 
begin 
    vCtx := TRTTIContext.Create; 
    vType := vCtx.GetType(Self.ClassInfo); 
    for vField in vType.GetFields do 
    vField.GetValue(
     //Here's the trouble, because i don't know how to get the instance 
    ); 

gibt es weitere Möglichkeiten der Werte der Felder erhalten, die die Instanzen werden können, von andere Klassen?

Antwort

6

Sie haben die Instanz als Parameter von GetValue wie

vField.GetValue(self);

Für ein besseres Verständnis von RTTI die remarkable articles about RTTI von Robert Love lesen zu übergeben. Für dieses Problem speziell dieses über Properties and Fields.

+0

Vielen Dank, ich habe diese Artikel gelesen, aber es scheint nicht so aufmerksam. Deine Antwort hat mein Problem gelöst. – boombastic

Verwandte Themen