Delphi XE 使用SaveState保存FireMonkey状态的示例


本文整理自网络,侵删。

 
Delphi XE7现在可以保存Firemonkey应用程序状态。

这是如何使用状态保存功能的示例。


将TEdit放在窗体上。

SaveState01

保存并恢复表单的位置和大小以及在TEdit中输入的文本。

保存状态
使用TJSONObject保存表单状态。

uses
  System.JSON;

procedure TForm1.FormSaveState(Sender: TObject);
var
  JSON: TJSONObject;
  Writer: TBinaryWriter;
begin
  JSON := TJSONObject.Create;
  JSON.AddPair(
    'Left',
    TJSONNumber.Create(Self.Left));
  JSON.AddPair(
    'Top',
    TJSONNumber.Create(Self.Top));
  JSON.AddPair(
    'Width',
    TJSONNumber.Create(Self.Width));
  JSON.AddPair(
    'Height',
    TJSONNumber.Create(Self.Height));
  JSON.AddPair(
    'Text',
    Edit1.Text);

  SaveState.Stream.Clear;
  Writer := TBinaryWriter.Create(SaveState.Stream);
  try
    Writer.Write(JSON.ToJSON);
  finally
    Writer.Free;
  end;
  JSON.Free;
end;
恢复状态
加载保存的状态并还原它。

procedure TForm1.FormCreate(Sender: TObject);
var
  Reader: TBinaryReader;
  JSON: TJSONObject;
begin
  if (SaveState.Stream.Size > 0) then
  begin
    Reader := TBinaryReader.Create(SaveState.Stream);
    JSON := TJSONObject.ParseJSONValue(Reader.ReadString) as TJSONObject;

    Edit1.Text := JSON.Values['Text'].Value;
    Self.Left := (JSON.Values['Left'] as TJSONNumber).AsInt;
    Self.Top := (JSON.Values['Top'] as TJSONNumber).AsInt;
    Self.Width := (JSON.Values['Width'] as TJSONNumber).AsInt;
    Self.Height := (JSON.Values['Height'] as TJSONNumber).AsInt;

    JSON.Free;
    Reader.Free;
  end;
end;
运行应用程序
在Edit1中输入并调整窗体位置的大小。

当您退出应用程序并再次运行它时,将还原表单的位置和大小以及输入的值。、

相关阅读 >>

Delphi 从url地址中获得文件名

Delphi实现网卡状态检测

Delphi string 常用字串符处理函数

Delphi ado 连接mssql数据库

Delphi opendialog使用方法

Delphi xe 减少程序体积!

Delphi调用winapi: getsystemmetrics - 获取系统度量等数值信息

Delphi firdac 对 sqlite 数字, int64也会被截断,会出现负数情况处理

Delphi 线程同步(线程安全)

Delphi检测用户是否具有administrator权限

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...