delphi android 文件读写,android - 在Delphi Firemonkey移动应用程序中读写inifile? - 堆栈内存溢出...

本文详细介绍了如何在DelphiXE7中利用OnSaveState事件实现iOS应用后台数据保存,通过BinaryWriter避免使用传统ini文件,展示了在Windows和iPad上的应用行为,特别提到了Windows中产生的临时文件现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Delphi XE7中,表单存在一个“ OnSaveState”事件。 这是保存应用程序数据的首选位置,因为它将在iOS应用程序进入“后台”状态时执行。 该文档非常有帮助...搜索“保存状态”。

这是我在主窗体的OnCreate处理程序中的代码:

procedure TMainWindow.FormCreate( Sender : TObject );

var

IniFile : TIniFile;

Metric : BOOLEAN;

IniFileName : STRING;

Reader : TBinaryReader;

begin

fInitializing := True;

SaveState.StoragePath := TPath.GetLibraryPath;

if SaveState.Stream.Size > 0 then begin

Reader := TBinaryReader.Create( SaveState.Stream );

try

Metric := Reader.ReadBoolean;

vMetricUnits.IsChecked := Metric;

SetSliderLimits( Metric );

Temperature := Reader.ReadDouble;

Dewpoint := Reader.ReadDouble;

Humidity := Reader.ReadDouble;

WindSpeed := Reader.ReadDouble;

finally

Reader.Free;

end;

end

else begin

Metric := False;

vMetricUnits.IsChecked := Metric;

SetSliderLimits( Metric );

Temperature := 70;

Dewpoint := 70;

Humidity := 100;

WindSpeed := 0;

end;

SetMetricUnits( cMetricUnits );

fInitializing := False;

WriteTrackbarCaptions;

CalculateTemperatures;

end;

这是表单的OnSaveState处理程序中的代码:

procedure TMainWindow.FormSaveState( Sender : TObject );

var

Writer : TBinaryWriter;

begin

SaveState.Stream.Clear;

Writer := TBinaryWriter.Create( SaveState.Stream );

try

Writer.Write( cMetricUnits );

Writer.Write( Temperature );

Writer.Write( Dewpoint );

Writer.Write( Humidity );

Writer.Write( WindSpeed );

finally

Writer.Free;

end;

end;

我已经在iPad和Windows上对此进行了测试,并且可以在两种平台上使用。 这样完全避免了使用.ini文件,但是在Windows版本中确实创建了一个名称有些奇怪的.tmp文件。 我假设在iPad上也创建了一个等效文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值