Пример использования KRIniConfig
KRIniConfig - это коллекция компонентов, где каждый элемент коллекции является параметром ini-файла. С помощью свойств класса TKRIniConfig задается имя и расположение конфигурационного файла. Есть три возможных варианта расположения конфигурационного файла:
- в папке с исполняемым файлом. Для этого свойство ApplicationPath устанавливается в True, а в свойстве FileName указывается только имя конфигурационного файла;
- в папке пользовательских настроек %APPDATA%\Roaming. Обычно эта папка расположена в C:\Users\UserName\AppData\Roaming. В папке пользовательских настроек будет создана папка с именем из свойства приложения Application.Name. Если свойство Name приложения не задано, то названием папки будет имя исполняемого файла без расширения. Для использования этого расположения нужно свойство AppDataPath установить в True, а в свойстве FileName указать только имя конфигурационного файла;
- произвольное расположение. Свойства ApplicationPath и AppDataPath устанавливаются в False, а в свойстве FileName прописывается полный путь и имя конфигурационного файла.
Параметрами ini-файла и элементами коллекции TKRIniConfig являются объекты класса TKRIniCfgParam. В свойствах указывается имя, секция, тип и значение по умолчанию. Свойство Name является именем параметра в ini-файле и именем компонента, то есть по этому имени можно обращаться к компоненту из кода программы. Доступ к значению параметра осуществляется через свойство Value. Для записи/чтения значения достаточно сделать так
Свойство Value принимает и возвращает значение типа Variant. Поэтому при записи/чтении значения нужно точно знать тип параметра, в противном случае может возникнуть ошибка.
Также есть возможность шифрования значения параметров строкового типа. Для этого нужно в параметре включить свойство Encrypt, а в свойстве TKRIniConfig.Password указать пароль для шифрования.
В классе TKRIniCfgParam нет событий изменения. Для того, чтобы фиксировать момент изменения значения параметра нужно добавить объект в список мониторинга с помощью метода AddMon. В список мониторинга добавляются только объекты соответствующие интерфейсу IKRCfgParam
Есть ряд интерактивных компонентов, которые используют параметр ini-файла для получения /записи данных. У всех этих параметров есть свойство CfgParam, в котором указывается конфигурационный параметр. Также у всех этих компонентов есть свойство SetByOk и все они соответствую интерфейсу IKRCfgParamEditor, который включает два метода OK и Cancel. Если SetByOk выключено, то при изменении значение сразу сохраняется в конфигурационный файл, а если включено, значение сохраняется только после вызова метода OK. Это даёт возможность создавать формы настроек с кнопками
- «Ok» - вызывает метод OK и закрывает форму;
- «Применить» - вызывает метод OK;
- «Отмена» - вызывает метод Cancel и закрывает форму.
Закрытие формы пользователем аналогично нажатию кнопки «Отмена». Методы OK и Cancel можно вызывать отдельно у каждого компонента, или использовать статические методы SetOK и SetCancel из класса TKRIniConfig. Эти методы находят все дочерние компоненты соответствующие интерфейсу IKRCfgParamEditor в указанном объекте и вызывают соответствующий метод.
В приведенном примере есть форма SettingsForm, которая содержит все интерактивные элементы использующие конфигурационный параметр

Для удобства я все конфигурационные параметры назвал именем соответствующего элемента из формы настроек

Главная форма мониторит изменение значений трёх параметров и при их изменении выводит соответствующую информацию в ListBox1. Два поля ввода на форме с выключенным свойством SetByOk для отображения и моментального ввода значения параметров, имена которых написаны над ними.
Вторая форма аналогична главной, только мониторятся другие параметры и поля ввода также работают с другими параметрами, подписанными над ними.
Скачать:
![]() | Программа для тестирования компонента KRIniConfig в Delphi |