Системный реестр Windows - это централизованная система хранения данных об операционной системе и
установленного в ней программного обеспечения. В целом принцип работы с системным реестром похож
на работу с файлами инициализации. Реестр состоит из 5 основных разделов, которые еще называют
ульями (Hive). Имя кажого улья начинается с буквы "H", что означает HiveKEY. Каждый
улей состоит из неограниченного числа ключей. В свою очередь каждый ключ состоит из неограниченного
числа подключей, которые содержат некоторый параметр (значение). Для "ручной" работы с реестром
существует Редактор Реестра, который запускается командой RegEdit в меню кнопки
"Пуск" - "Выполнить".
В Delphi для работы с реестром существует класс TRegistry. Для этого нужно в разделе Uses
проекта описать модуль Registry. Далее нужно создать экземпляр класса при помощи метода
Create. Для указания текущего улья используется свойство RootKey. По умолчанию это
свойство установлено в HKEY_CURRENT_USER. Так как данное свойство не является строковым типом, то
при указании имени улья его не нужно обрамлять в апострофы или кавычки.
Все операции с текущим ключом выполняются, только если он является открытым. Для того чтобы открыть ключ существует метод OpenKey(const Key: String; CanCreate: Boolean). Если указанный ключ существует, то он становиться активным, иначе учитывается значения свойства CanCreate. Если оно установлено в True, то указанный ключ создается заново и становиться активным. Для того чтобы узнать текущий ключ, с которым происходит работа в данный момент, используется свойство CurrentKey. А при помощи свойства CurrentPath можно узнать полный путь к текущему ключу.
После завершения работы с ключом его следует закрыть. Для этого служит метод CloseKey.
Если в качестве параметра указать не существующий ключ, то этот метод будет просто игнорирован.
Для чтения из реестра используются метода, которые очень похожи на методы чтения для файлов
инициализации.
Для записи данных в реестр используются метода, которые также очень похожи на методы записи для
файлов инициализации. Если указать имя не существующего ключа, то он будет создан снова.
Для создания нового ключа используется метод CreateKey. Если указать имя уже существующего
ключа, то метод будет игнорирован. Для проверки существования ключа служит метод KeyExist.
Для удаления ключа используется метод DeleteKey логического типа. В результате выполнения
данного метода, указанный ключ будет удален со всеми его подключами и параметрами.
Ну, и на последок разберем традиционный пример для сохранения и последующего восстановления параметров
формы. Для этого объявим одну глобальную переменную для работы с реестром. В обработчик удаления
формы внесем код для сохранения параметров формы, а в обработчик создания формы внесем код для
считывания сохраненных параметров формы.
|