Uses
IniFiles;
const
SZ_APP_NAME =
'demo_test'
;
Procedure
TForm1
.
GetSettings;
var
_MemIniU: TMemIniFile;
_SettingsPath:
string
;
begin
try
_SettingsPath := GetHomePath + PathDelim + SZ_APP_NAME + PathDelim;
if
ForceDirectories(_SettingsPath)
then
begin
_MemIniU := TMemIniFile
.
Create(ChangeFileExt(_SettingsPath,
'Settings.ini'
), TEncoding
.
UTF8);
try
if
_MemIniU
.
ReadInteger(SZ_APP_NAME,
'WindowLeft'
, -
1
) = -
1
then
Form1
.
Position := poScreenCenter
else
begin
Form1
.
Left := _MemIniU
.
ReadInteger(SZ_APP_NAME,
'WindowLeft'
,
10
);
Form1
.
Top := _MemIniU
.
ReadInteger(SZ_APP_NAME,
'WindowTop'
,
10
);
Form1
.
Width := _MemIniU
.
ReadInteger(SZ_APP_NAME,
'WindowWidth'
,
594
);
Form1
.
Height := _MemIniU
.
ReadInteger(SZ_APP_NAME,
'WindowHeight'
,
342
);
end
;
Edit1
.
Text := _MemIniU
.
ReadString(SZ_APP_NAME,
'UnicodeText'
,
'ąčę'
);
finally
_MemIniU
.
Free;
end
;
end
;
except
on
E: Exception
do
MessageDlg(
PWideChar
(E
.
Message), TMsgDlgType
.
mtError,
[TMsgDlgBtn
.
mbOK],
0
);
end
;
end
;
Procedure
TForm1
.
SaveSettings;
var
_MemIniU: TMemIniFile;
_SettingsPath:
string
;
begin
try
_SettingsPath := GetHomePath + PathDelim + SZ_APP_NAME + PathDelim;
_MemIniU := TMemIniFile
.
Create(ChangeFileExt(_SettingsPath,
'Settings.ini'
),
TEncoding
.
UTF8);
try
if
Form1
.
WindowState <> TWindowState
.
wsMaximized
then
begin
_MemIniU
.
WriteInteger(SZ_APP_NAME,
'WindowLeft'
, Form1
.
Left);
_MemIniU
.
WriteInteger(SZ_APP_NAME,
'WindowTop'
, Form1
.
Top);
_MemIniU
.
WriteInteger(SZ_APP_NAME,
'WindowWidth'
, Form1
.
Width);
_MemIniU
.
WriteInteger(SZ_APP_NAME,
'WindowHeight'
, Form1
.
Height);
_MemIniU
.
WriteString(SZ_APP_NAME,
'UnicodeText'
, Edit1
.
Text);
end
;
_MemIniU
.
UpdateFile;
finally
_MemIniU
.
Free;
end
;
except
on
E: Exception
do
MessageDlg(
PWideChar
(E
.
Message), TMsgDlgType
.
mtError,
[TMsgDlgBtn
.
mbOK],
0
);
end
;
end
;
请发表评论