gpt4 book ai didi

android - 在 Delphi Firemonkey 移动应用程序中读写 inifile?

转载 作者:行者123 更新时间:2023-11-29 14:22:58 26 4
gpt4 key购买 nike

如果已经在 SO 上访问过这里,请指出它,因为我似乎找不到它。话虽如此:

使用标准的 Delphi 应用程序事件,以及 Mobile app lifecycle events handling , 我正在尝试找到读取和写入 INI 文件的最佳位置?

在我测试时,我创建了一个带有按钮的演示应用程序,该按钮递增计数变量并将其显示在显示消息中

procedure TfrmMain.Button1Click(Sender: TObject);
begin
inc(Count);
ShowMessage(IntToStr(Count));
end;

甚至在主窗体的 OnCreate 中,我读取了 inifile

procedure TfrmMain.FormCreate(Sender: TObject);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create( TPath.GetDocumentsPath + PathDelim + 'fortysixtozero.ini' );
try
Count := Ini.ReadInteger( 'Main', 'Count', 0 );
finally
Ini.Free;
end;
end;

现在,知道移动应用程序可以有不同的状态,我想知道编写 ini 文件的最佳位置是什么?

最佳答案

保存应用程序状态或存储设置的最佳状态是“aeEnteredBackground”。我在这里使用了 delphi FMX 事件。您还应该检查“aeWillBecomeInactive”和“aeWillTerminate”事件,但第一个是最相关的。当另一个应用程序打开或您的应用程序关闭时,应用程序进入后台(它们不会立即终止)。

检查这个article .

监听事件的代码如下所示:

function TfMain.HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean; 
begin
case AAppEvent of
aeFinishedLaunching: ;
aeBecameActive: ;
aeWillBecomeInactive: ;
aeEnteredBackground: ;
aeWillBecomeForeground: ;
aeWillTerminate: ;
aeLowMemory: ;
aeTimeChange: ;
aeOpenURL: ;
end;

Result := True;
end;

要附加您使用平台服务的监听器:

  if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(SvcEvents)) then
SvcEvents.SetApplicationEventHandler(HandleAppEvent);

只需将“FMX.Platform”添加到您的使用条款。

关于android - 在 Delphi Firemonkey 移动应用程序中读写 inifile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22967520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com