xtool/contrib/mORMot/SQLite3/Samples/27 - CrossPlatform Clients/MobileMain.pas

54 lines
1.1 KiB
ObjectPascal

unit MobileMain;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts,
FMX.Memo, FMX.StdCtrls, FMX.Edit,
SynCrossPlatformJSON;
type
TForm1 = class(TForm)
lbl1: TLabel;
edtValue: TEdit;
lbl2: TLabel;
mmoJSON: TMemo;
procedure FormCreate(Sender: TObject);
procedure edtValueChangeTracking(Sender: TObject);
private
public
doc: variant;
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.edtValueChangeTracking(Sender: TObject);
begin
doc.value := edtValue.Text;
mmoJSON.Text := doc;
end;
procedure TForm1.FormCreate(Sender: TObject);
var json: string;
begin
doc := JSONVariant('{"test":1234,"name":"Joh\"n\r","zero":0.0}');
assert(doc.test=1234);
assert(doc.name='Joh"n'#13);
assert(doc.name2=null);
assert(doc.zero=0);
json := doc;
assert(json='{"test":1234,"name":"Joh\"n\r","zero":0}');
doc.name2 := 3.1415926;
doc.name := 'John';
json := doc;
assert(json='{"test":1234,"name":"John","zero":0,"name2":3.1415926}');
end;
end.