Пример использования KRIniConfig

 

KRIniConfig - это коллекция компонентов, где каждый элемент коллекции является параметром ini-файла. С помощью свойств класса TKRIniConfig задается имя и расположение конфигурационного файла. Есть три возможных варианта расположения конфигурационного файла:

  1. в папке с исполняемым файлом. Для этого свойство ApplicationPath устанавливается в True, а в свойстве FileName указывается только имя конфигурационного файла;
  2. в папке пользовательских настроек %APPDATA%\Roaming. Обычно эта папка расположена в C:\Users\UserName\AppData\Roaming. В папке пользовательских настроек будет создана папка с именем из свойства приложения Application.Name. Если свойство Name приложения не задано, то названием папки будет имя исполняемого файла без расширения. Для использования этого расположения нужно свойство AppDataPath установить в True, а в свойстве FileName указать только имя конфигурационного файла;
  3. произвольное расположение. Свойства 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, которая содержит все интерактивные элементы использующие конфигурационный параметр

Форма настроек в программе тестирования компонента KRIniConfig для Delphi

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

Список конфигурационных параметров TKRIniCfgParam в Delphi

Главная форма мониторит изменение значений трёх параметров и при их изменении выводит соответствующую информацию в ListBox1. Два поля ввода на форме с выключенным свойством SetByOk для отображения и моментального ввода значения параметров, имена которых написаны над ними.

Вторая форма аналогична главной, только мониторятся другие параметры и поля ввода также работают с другими параметрами, подписанными над ними.

Скачать:
Программа для тестирования компонента KRIniConfig в Delphi
 
Поделиться:

Новости сайта

30.03.2021 14:53
Обновлен набор компонентов для Delphi
Пакет компонентов для Delphi обновлен до версии от 30.03.2021 г.
14.03.2021 04:54
Обновлен скрипт экспорта Google таблиц в PDF
Добавлены новые возможности при экспорте Google таблиц в PDF файл
22.01.2021 11:45
Обновлен пакет компонентов для Delphi
В пакет компонентов для Delphi было внесено большое количество изменений, касающиеся протокола Modbus и мультиязычности
05.05.2020 15:34
Новая статья про удаленное управление принтером Domino V-series
Реализация протокола передачи данных для связи с термотрансферным принтером Domino V-series из Delphi

Популярные статьи

Modbus Slave на Arduino
Реализация клиентской части протокола Modbus RTU и Modbus ASCII для контроллеров Arduino
Пример передачи данных по протоколу Modbus на Delphi
Пример передачи данных с контроллера ОВЕН ПЛК100 в программу на Delphi по протоколу Modbus
Экспорт таблиц Google Sheets в PDF файл, на email и на Google диск
Экспорт таблиц Google Sheets в PDF файл с помощью Google Script с последующим скачиванием или сохранением на Google Drive или отправкой на почту
Набор компонентов для Delphi
Набор компонентов для Delphi включает в себя компонент для работы с файловой системой, сетью, автоматизацией и другие.