码迷,mamicode.com
首页 > 其他好文 > 详细

XE3随笔10:TSuperType

时间:2015-08-13 11:41:06      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

uses SuperObject;

//类型
procedure TForm1.Button1Click(Sender: TObject);
function GetJsonType(I: ISuperObject): string;
begin
case I.DataType of
stNull: Result := ‘stNull‘;
stBoolean: Result := ‘stBoolean‘;
stDouble: Result := ‘stDouble‘;
stInt: Result := ‘stInt‘;
stObject: Result := ‘stObject‘;
stArray: Result := ‘stArray‘;
stString: Result := ‘stString‘;
stMethod: Result := ‘stMethod‘;
end;
end;
var
jo: ISuperObject;
begin
jo := SO(‘{A:1, B:2}‘);
ShowMessage(GetJsonType(jo)); {stObject}
jo := SO;
ShowMessage(GetJsonType(jo)); {stObject}

jo := SO(‘abc‘);
ShowMessage(GetJsonType(jo)); {stString}

jo := SO(123);
ShowMessage(GetJsonType(jo)); {stInt}
jo := SO(‘123‘);
ShowMessage(GetJsonType(jo)); {stInt}

jo := SO(3.14);
ShowMessage(GetJsonType(jo)); {stDouble}
jo := SO(‘3.14‘);
ShowMessage(GetJsonType(jo)); {stDouble}

jo := SO(False);
ShowMessage(GetJsonType(jo)); {stBoolean}

jo := SO(‘[1,2,3,a,b,c]‘);
ShowMessage(GetJsonType(jo)); {stArray}

jo := TSuperObject.Create(stMethod);
ShowMessage(GetJsonType(jo)); {stMethod}

jo := SO(‘null‘);
ShowMessage(GetJsonType(jo)); {stNull}
end;

//判断
procedure TForm1.Button2Click(Sender: TObject);
var
jo: ISuperObject;
begin
jo := SO(‘[]‘);

if jo.DataType = stArray then ShowMessage(‘stArray‘);

if ObjectIsType(jo, stArray) then ShowMessage(‘stArray‘);
end;

end.

XE3随笔10:TSuperType

标签:

原文地址:http://www.cnblogs.com/DaXiong2000/p/4726439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!