Пример использования 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
 
Поделиться:

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

05.05.2020 15:34
Новая статья про удаленное управление принтером Domino V-series
Реализация протокола передачи данных для связи с термотрансферным принтером Domino V-series из Delphi
24.04.2020 22:14
Добавлена статья по работе с сенсором Omron FQ-CR1 из Delphi
Подключение по сети к считывателю штрих-кодов Omron FQ-CR1 из программы на Delphi
17.03.2020 20:46
Обновлен пакет компонентов для Delphi
Доступна для скачивания новая версия компонентов для Delphi, от 17.03.2020г. С данной версии библиотеки доступны и на GitHub
28.01.2020 16:15
Опубликована статья о принципе работы коннекторов в Delphi
Коннектор – это объект, осуществляющий связь с внешними объектами(объектом). Внешним объектом может выступать другая программа или другое устройство, которое поддерживает тот же интерфейс или протокол связи.

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

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