Этот пример показывает, как можно сохранять настройки с помощью ini-файла. Ini-файлы удобны тем, что после удаления программы без деинсталяции в реестре не остается "следов". Еще это удобно тем, что для "сброса" настроек программы достаточно удалить ini-файл.
Эта программа сохраняет позицию и размер окна, содержимое поля ввода Edit1, число, введенное в Edit2, флажок CheckBox1, а также содержимое ListBox1 (добавить в него строчку можно, нажав на кнопку).
uses IniFiles;
procedure TForm1.FormCreate(Sender: TObject);
var
F: TIniFile;
names: TStringList;
i: integer;
begin
F := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'window.ini');
Form1.Left := F.ReadInteger('position', 'left', 0);
Form1.Width := F.ReadInteger('position', 'width', 200);
Form1.Top := F.ReadInteger('position', 'top', 0);
Form1.Height := F.ReadInteger('position', 'height', 200);
Edit1.Text := F.ReadString('tools', 'edit1', 'no text');
Edit2.Text := IntToStr(F.ReadInteger('tools', 'koef', 0));
CheckBox1.Checked := F.ReadBool('tools', 'check', true);
names := TStringList.Create;
F.ReadSection('files', names);
for i := 0 to Names.Count - 1 do
ListBox1.Items.Add(F.ReadString('files', names.Strings[i], ''));
names.Destroy;
F.Destroy;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
F: TIniFile;
i: integer;
begin
F := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'window.ini');
F.WriteInteger('position', 'left', Form1.Left);
F.WriteInteger('position', 'width', Form1.Width);
F.WriteInteger('position', 'top', Form1.Top);
F.WriteInteger('position', 'height', Form1.Height);
F.WriteString('tools', 'edit1', Edit1.Text);
F.WriteInteger('tools', 'koef', StrToIntDef(Edit2.Text, 0));
F.WriteBool('tools', 'check', CheckBox1.Checked);
for i := 0 to ListBox1.Items.Count - 1 do
F.WriteString('files', 'file' + IntToStr(i+1), ListBox1.Items.Strings[i]);
F.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add(Edit1.Text);
end;
Программа на Delphi использует файл INI для хранения настроек приложения. Файл INI называется "window.ini" и находится в том же каталоге, что и исполняемый файл.
Вот подробное описание того, что код делает:
FormCreate
Создает объект TIniFile, представляющий файл INI.
Читает позицию, размер и другие настройки из файла INI и устанавливает соответствующие свойства на форме.
Пополняет Edit1 контролем с сохраненным текстом, Edit2 контролем с сохраненным целочисленным значением и CheckBox1 контролем с сохраненным булевым значением.
Читает содержимое ListBox1 из файла INI и добавляет его в список.
FormDestroy
Создает объект TIniFile, представляющий файл INI.
Записывает текущую позицию, размер и другие настройки в файл INI.
Сохраняет текст в Edit1, целочисленное значение в Edit2 и булевое значение в CheckBox1 в файл INI.
Сохраняет содержимое ListBox1 в файл INI.
Button1Click
Добавляет текст из Edit1 в ListBox1 при нажатии кнопки.
Использование файла INI обеспечивает простой способ для приложения хранить свои настройки и восстановить их позднее. Это может быть полезно в сценариях, где пользователь хочет настроить поведение или внешний вид приложения и сохранить эти изменения, чтобы они оставались актуальными при различных запусках программы.
Вот некоторые предложения по улучшению кода:
Вместо жесткого кодирования имени файла "window.ini" и пути, рассмотрите более гибкий подход, например, использование каталога настроек или позволяя пользователю указать имя файла.
Рассмотрите добавление обработки ошибок для ситуаций, когда файл INI не может быть создан или прочитан успешно.
Если вы храните чувствительные данные в файле INI (например, пароли), рассмотрите возможность шифрования данных, чтобы предотвратить доступ к ним без разрешения.
Возможно, вам стоит рассмотреть использование более robust механизма хранения настроек, такого как база данных или файл XML, особенно если вам нужно хранить большие объемы данных или требовать advanced querying capabilities.
В целом, это хороший пример использования файла INI для хранения настроек приложения в Delphi.
В статье описывается пример сохранения настроек с помощью ini-файла в Delphi, демонстрирующий как можно хранить позицию и размер окна, содержимое полей ввода и других элементов формы.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.