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

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

16.10.2019 12:45
Экспорт Google Sheets в PDF файл
Пример экспорта Google таблицы в PDF файл с помощь Google Script
09.10.2019 02:20
Обновлена версия компонентов для Delphi
Опубликована новая версия компонентов для Delphi от 9.10.2019 г.
22.09.2019 22:31
Добавлено описание модуля KRVCheckBox.pas
KRVCheckBox - интерактивный элемент мониторинга и управления удаленным устройством
14.09.2019 16:00
Добавлено описание модуля KRVariables.pas
KRVariables - виртуальные классы для работы с переменными удаленного устройства

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

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