本文整理自网络,侵删。
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,TypInfo;
type TForm1 = class(TForm) Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;{$M+} //如果不用 {$M+} 则需要继承TPersistent TTest = class(TObject) public
FName,FSex,FScholl:string; published property Name :string read FName write FName; property Sex :string read FSex write FSex; property Scholl :string read FScholl write FScholl; end;{$M-}var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);var PropCount, I: SmallInt; PropList: PPropList; PropStr,sValues: string; AClass:TTest; AStrings:TStrings;begin AStrings:=TStrings.Create; AClass:=TTest.Create; AClass.Name:='MyTest'; AClass.Sex:='Male'; AClass.Scholl:='Scholl';
PropCount := GetTypeData(AClass.ClassInfo).PropCount; GetPropList(AClass.ClassInfo, PropList); for I := 0 to PropCount - 1 do begin case PropList[I]^.PropType^.Kind of tkClass : PropStr := '[Class] '; tkMethod : PropStr := '[Method]'; tkSet : PropStr := '[Set] '; tkEnumeration: PropStr := '[Enum] '; else PropStr := '[Field] '; end; PropStr := PropStr + PropList[I]^.Name; PropStr := PropStr + ': ' + PropList[I]^.PropType^.Name;
sValues:=GetPropValue(AClass,PropList[I].Name,True); ShowMessage(sValues); ShowMessage(PropStr); end; FreeMem(PropList);
end;
end.
相关阅读 >>
Delphi 如何把一个exe做为res加入到dll中,并在运行时生成exe文件执行
Delphi xe7里面 sharedactivitycontext怎么提示错误?
更多相关阅读请进入《Delphi》频道 >>