本文整理自网络,侵删。
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 regularexpressions 正则表达式如何忽略大小写
更多相关阅读请进入《Delphi》频道 >>