2010-12-09 52 views
1

是否可以通過類型信息獲取記錄的元素或字段列表 類似於類的發佈屬性列表?列出記錄的元素字段

謝謝!

+2

它始終是明智的,包括在你的問題德爾福版本,特別是有關功能的具體問題(RTTI已德爾福2010年進行過大修)這樣的問題的問題。 – 2010-12-09 07:52:13

回答

8

取決於您的delphi版本,如果您使用的是delphi 2010 o較新的版本,您可以使用新的rtti增強功能。

檢查這個代碼

program ProjectTestRtti; 

{$APPTYPE CONSOLE} 

uses 
    Rtti, 
    SysUtils; 

type 
    MyRecord=record 
    Field1 : integer; 
    Field2 : boolean; 
    Field3 : string; 
    end; 

var 
ctx : TRttiContext; 
t  : TRttiType; 
field : TRttiField; 
begin 
try 
    ctx := TRttiContext.Create; 
    for field in ctx.GetType(TypeInfo(MyRecord)).GetFields do 
    begin 
     t := field.FieldType; 
     writeln(Format('Field : %s : Type : %s',[field.Name,field.FieldType.Name])); 
    end; 
except 
    on E: Exception do 
     Writeln(E.ClassName, ': ', E.Message); 
end; 

    Readln; 
end. 
+1

我在德爾福2006年...無賴。 – Rick 2010-12-09 02:59:29