procedure TForml.FormDestroy(Sender: TObject);
var
sAppPath: String;
iniSettings: TINIFile;
begin
{Получить путь к ЕХЕ-файлу приложения.}
sAppPath:= ExtractFilePath(Application.EXEName);
{Создаем объект TINIFile.}
iniSettings:= TINIFile.Create(sAppPath + 'SETTINGS.INI');
try
{Записываем свойства в INI-файл.}
iniSettings.Writelnteger(Name,'Left',Left);
iniSettings.Writelnteger(Name,'Top',Top);
iniSettings.Writelnteger(Name,'Width',Width);
iniSettings.Writelnteger(Name,'Height',Height);
finally
iniSettings.Free;
end;
end;
Совет: Для компиляции примера не забудьте включить в раздел uses модуль INIFiles.
После выполнения кода ваш INI-файл будет содержать нечто вроде
[Form1]
Left=108
Тор=174
Width=540
Height=165
Заметьте, что для строки раздела используется свойство Name вашей формы.
Восстановить положение формы на экране немного сложнее (главным образом из-за того, что следует отработать ситуацию, когда INI-файла нет).
procedure TFormI.Create(Sender: TObject);
const
CNOTFOUND = -1;
var
sAppPath: String;
iniSettings: TINIFile;
liValue: Longint;
begin
{Получаем путь к ЕХЕ-файлу приложения.}
sAppPath:= ExtractFilePath(Application.ExeName);
{Создаем объект TINIFile.}
iniSettings:= TINIFile.Create(sAppPath + 'SETTINGS.INI');
try
{Пытаемся считать значение Left.}
liValue:= iniSettings.Readlnteger(Name,'Left',cNOTFOUND);
{Проверяем, считано ли значение.}
if liValue = cNOTFOUND then
begin
{Свойства в INI-файле не найдены — центруем форму.}
Left:= (Screen.Width - Width) div 2;
Top:= (Screen.Height - Height) div 2;
end
else
begin
{Считываем значения из INI-файла.}
Left:= iniSettings.Readlnteger(Name,'Left',Left);
Top:= iniSettings.Readlnteger(Name,'Top',Top);
Height:= iniSettings.Readlnteger(Name,'Height',Height);
Width:= iniSettings.Readlnteger(Name,'Width'.Width);
end;
finally
iniSettings.Free;
end:
end;