Урок 68 - Реестр Windows, (часть 1/2)
На прошлом уроке мы с вами рассмотрели методику записи и чтения пользовательских данных и данных состояния компонентов в ini файл. Эта методика хранения параметров программы является устаревшей. Рекомендуется для этих целей использовать реестр.
Для начала краткая информация о реестре. Проще говоря, реестр windows, эта огромная база данных, хранящая в себе всевозможные пользовательские и системные данные. Установленное оборудование, драйвера, установленные шрифты, установленные принтеры и многое другое записано в соответствующих разделах.
Как же все-таки увидеть данные реестра? Очень просто. Надо нажать на кнопку "Пуск", выбрать пункт "Выполнить" и ввести название программы REGEDIT, которая отображает реестр для чтения и редактирования. Эта программа находится в каталоге windows. Помните, что некорректное изменение некоторых системных ключей в реестре может привести к постоянным сбоям в системе, может привести даже к полному краху операционной системы, поэтому изменения и удаление следует производить очень осторожно.
Внешний вид этой программы состоит из двух панелей. Левая древовидная и правая, в которой отображаются параметры ключей. Ключ - это элемент реестра, который может содержать некоторые данные или содержать другие ключи. Это древовидная структура, которая хранит в себе вложенные параметры, объединенные общей тематикой. Не буду рассказывать назначение отдельных ключей, это может занять не одну книгу, скажу только, что программы, которые работают с реестром в качестве ini файла, автоматически записывают и читают данные из глобального ключа HKEY_CURRENT_USER. Он же дублируется в ключе HKEY_USERS\ИМЯ_ТЕКУЩЕГО_ПОЛЬЗОВАТЕЛЯ.
Дальше рассмотрим запись и чтение данных. Тут методика аналогична работе с ini файлами.
Для начала в разделе подключаемых модулей Uses нужно указать модуль Registry, который необходим для использования команд работы с реестром.
Объявление реестровой переменной
Var ПЕРЕМЕННАЯ:TRegIniFile;Создание реестровой переменной, через которую будем читать и писать данные
ПЕРЕМЕННАЯ:=TRegIniFile.Create(НАЗВАНИЕ_КЛЮЧА);Пример объявления, создания и удаления.
procedure TForm1.FormShow(Sender: TObject); Var RegIniFile:TRegIniFile;// реестровая переменная begin RegIniFile:=TRegIniFile.Create('MySelfRegistryApplication'); // создание реестровой переменной RegIniFile.Free; // уничтожение вручную созданного объекта end;Подробно о командах чтения и записи.
Чтение и запись целочисленного значения, типа integer:
RegIniFile.ReadInteger(СЕКЦИЯ,ПАРАМЕТР,ЗНАЧЕНИЕ_ПО_УМОЛЧАНИЮ); RegIniFile.WriteInteger(СЕКЦИЯ,ПАРАМЕТР,ЗНАЧЕНИЕ);Дальше аналогично вышерассмотренной команде следует чтение и запись:
двоичного значения ReadBool и WriteBool;
строкового значения ReadString и WriteString;
Если необходимо сохранить данные не в отдельной секции, а в ключе, то вместо параметра СЕКЦИЯ необходимо указать пустую строку, или две кавычки ''.
Сохранение остальных типов данных осуществляется не в секции, а непосредственно
в ключе.
Для этих команд при обращении к значениям нужно проверять их наличие. Например,
если соответствующие параметры не были созданы, то их чтение приведет к ошибке.
проверка их наличия производится командой
RegIniFile.ValueExists(ПАРАМЕТР)Эта команда является функцией, возвращающей истинно (true) или ложно (false), и ее можно использовать в паре с чтением определенного параметра. Например, чтение числа с плавающей точкой:
if RegIniFile.ValueExists('MyFloat') then // если данный параметр существует, то Edit2.Text:=FloatToStr(RegIniFile.ReadFloat('MyFloat')); // прочитать параметрПродолжение в следуйшем уроке. Там мы рассмотрим пример.
Удачи!
Встретимся в следующем уроке!
No results found.