这里有一个值得注意的现象。我的 Delphi 10.3 应用程序开始向 TIniFile
中写入重复条目。
以下是代码:
with TIniFile.Create(UserDatFileName) do
try
WriteInteger(SFormName, 'Top', AForm.Top);
WriteInteger(SFormName, 'Left', AForm.Left);
WriteInteger(SFormName, 'Height', AForm.Height);
WriteInteger(SFormName, 'Width', AForm.Width);
WriteString(SFormName, 'WindowState', SWindowState);
finally
Free;
end;
这已经运作了好几年。现在突然间,我得到了像这样的输出:
[fMainForm]
Top=0
Left=0
Height=556
Width=671
WindowState=wsMaximized
pnlNavigation.Width=165
TreeListcxTreeListModule.Width=161
Top=0
Left=0
Height=556
Width=671
WindowState=wsMaximized
pnlNavigation.Width=165
TreeListcxTreeListModule.Width=161
Top=0
Left=0
Height=556
Width=671
WindowState=wsMaximized
pnlNavigation.Width=165
TreeListcxTreeListModule.Width=161
... etcetera etcetera
你有什么建议,为什么会发生这种情况?我以为TIniFile
的键值对在每个区段内应该是唯一的。
TMemIniFile
。在任何非Windows平台上都是默认选项,在Windows上也表现良好。它甚至比之前的方法快不少。你可以一次性刷新所有更改,而不必在每次写入时调用这个相对较慢的API。 - GolezTrol