Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4

Кент Рейсдорф. BORLAND C++BUILDER. Страница 417

Использование TRegistry

Работа с TRegistry очень проста. В большинстве случаев ваше взаимо­действие с реестром сводится к выполнению следующих четырех шагов:

1. Создайте экземпляр класса TRegistry.

2. Откройте ключ, вызвав метод ОрепКеу().

3. Прочитайте или запишите данные, вызвав необходимое количество раз функцию Read() или Write().

4. Закройте ключ, вызвав функцию CloseKeyQ.


Этот код открывает ключ и читает значение координат верхнего левого угла формы, а также ее ширину и высоту. Затем вызывается функция Set- Bounds(), чтобы переместить окно и/или изменить его размеры. Я хочу об­ратить ваше внимание на пару моментов. Прежде всего, я использую ссылку при создании экземпляра TRegistry. Это уменьшает беспорядок в остальной части кода. Мне не очень нравится оператор косвенного доступа (->), так что по возможности я стараюсь его избегать.

Во-вторых, обратите внимание, что результат, возвращаемый методом ОрепКеуО, присваивается переменной типа bool. ОрепКеуО возвращает true, если ключ был успешно открыт и false, если этого не произошло. Если ключ был успешно открыт, то читаются отдельные элементы данных. Вы должны всегда проверять значение, возвращаемое ОрепКеуО, если сомневаетесь в том, что ключ может быть открыт.

Наконец, обратите внимание, что в приведенном коде ключ не был явно закрыт. Если вы не закроете ключ, деструктор TRegistry сделает это за вас. В данном случае деструктор будет вызван (и ключ будет закрыт) при раз­рушении объекта regKey, так что нет необходимости явно обращаться к CloseKey().

Здесь мы поставили телегу немного впереди лошади, поскольку говорим о чтении из реестра, ничего в него не записав. Это непринципиально — запись в реестр выполняется так же просто:

Этот код просто открывает ключ и записывает в него свойства формы Top, Left, Width и Height, используя метод Writelnteger(). Обратите внима­ние, что последним аргументом метода ОрепКеуО является true. Это служит указанием на то, что ключ должен быть создан, если он еще не существует. При использовании такой конструкции вам вообще никогда не потребуется вызывать метод CreateKey().

Web-дизайн (с) 2010 All rights reserved