2009年9月3日木曜日

TValue型を試してみる

Rttiユニットで新たに定義されたTValue型は、汎用に使えるデータ型に
なっていて、Delphiで使う基本的な型は、Implicit演算子が定義されており
代入可能になっている。

で、実験してみた。以下ソースコード



program Project1;
{$APPTYPE CONSOLE}

uses
SysUtils,
rtti,
typinfo;

var
tv: TValue;
obj: TObject;
intary: Array of TValue;

begin
try
{ TODO -oUser -cConsole Main : ここにコードを記述してください }
// 先ずは何も入れない場合
if tv.IsEmpty then
begin
writeln('TValueはからです');
end;

tv := 100;
writeln('TValueは' + tv.TypeInfo.Name + 'です。');

tv := 100.0;
writeln('TValueは' + tv.TypeInfo.Name + 'です。');

tv := 'saka';

writeln('TValueは' + tv.TypeInfo.Name + 'です。');

obj := TObject.Create;
tv := obj;
writeln('TValueは' + tv.TypeInfo.Name + 'です。');

tv := obj.ClassType;
writeln('TValueは' + tv.TypeInfo.Name + 'です。');

obj.Free;

end.



で実行した様子が下図。