Валерий Борисок - Delphi. Трюки и эффекты
- Название:Delphi. Трюки и эффекты
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Валерий Борисок - Delphi. Трюки и эффекты краткое содержание
«Delphi. Трюки и эффекты», как и все издания данной серии, адресована тем, кто хочет научиться делать с помощью уже знакомых программных пакетов новые, интересные вещи. В первой части книги многое говорится о среде разработки Delphi (самых последних версий) и программировании на языке Object Pascal. Благодаря этому издание подходит и новичкам, и начинающим программистам. Вторая (основная) часть книги описывает удивительные возможности, скрытые в языке, и на примерах учит читателя программистским фокусам – от «мышек-невидимок» и «непослушных окон» до воспроизведения МРЗ и управления офисными программами Word и Excel из приложений Delphi. Купив эту книгу, вы пройдете непростой путь к вершинам программистского мастерства весело и интересно.
Delphi. Трюки и эффекты - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Краткие сведения о реестре Windows
Что же представляет собой системный реестр и для чего он предназначен? Реестр состоит из нескольких файлов с довольно сложной организацией записей, формирующих иерархическую структуру (родитель—потомки), а точнее, несколько веток структуры. Благодаря наличию специальных функций мы можем работать с реестром именно как с иерархической структурой, а не как с набором записей в файле.
Реестр Windows является отличным примером организации централизованного хранения данных, в основном, настроек программ. Реестр является хорошей альтернативой большим INI-файлам, доставшимся в наследство от 16-разрядных версий Windows, главным образом из-за возможности лучше структурировать информацию (ведь секции разделов в реестре могут быть много раз вложенными). В реестре хранятся и данные, которые могут пригодиться сразу многим программам: например, расположения СОМ-серверов, пути приложений, ассоциированных с различными типами файлов.
В реестре могут быть объекты двух типов: разделы (во многом аналогичны папкам файловой системы) и параметры (имеют имя, тип и значение).
Данные реестра сгруппированы в несколько ветвей (рис. 7.6). Для запуска показанной на рис. 7.6 программы Редактор реестра достаточно набрать в командной строке Regedit либо отыскать файл Regedit. ехе в каталоге Windows.
Информация, помещаемая в различных разделах реестра, группируется по следующим признакам.
• HKEY_CURRENT_USER – в этом разделе хранится информация, используемая для текущего пользователя, осуществившего вход в систему. Этой информацией могут быть, например, значения переменных окружения, фон Рабочего стола, вид меню Пуск.
• HKEY_USERS – содержит настройки системы для различных пользователей, а также настройки, используемые по умолчанию для нового пользователя.
• HKEY_LOCAL_MACHINE – самая большая и главная ветвь реестра, содержащая параметры Windows, приложений, оборудования, ассоциации расширений файлов, расположение СОМ-серверов и еще много чего полезного.
• HKEY_CURRENT_CONFIG – в этом разделе хранятся значения параметров Windows, отличающихся от стандартных. Он является псевдонимом для ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware ProfilesX Current.
• HKEY_CLASSES_ROOT – в системах Windows 95/98/NT 4.0 и более ранних этот раздел является псевдонимом для ветви HKEY_LOCAL_MACHINE\SOFTWARE\Classes. В Windows 2000/ХР содержимое этого раздела составляется из содержимого разделов HKEY_LOCAL_MACHINE\SOFTWARE\Classes и HKEY_CURRENT_USER\Software\Classes.
Доступ к разделам реестра происходит по дескрипторам. Дескриптор раздела можно получить при его создании или открытии, указав дескриптор одной из рассмотренных выше корневых ветвей, а также путь требуемого раздела. Для хранения дескрипторов корневых ветвей реестра определены одноименные константы.
Средства работы с реестром
Для работы с реестром предусмотрена целая группа API-функций. Однако зачем изобретать велосипед, испытывая на себе «удобство» работы с этими функциями? Ведь Borland предоставила нам в распоряжение замечательный по своей простоте класс TRegistry. Использованию этого класса как раз и посвящено несколько следующих абзацев.
Итак, класс TRegistry находится в модуле Registry. Если кому-то все же станет интересно использование API для работы с реестром, то можете заглянуть в этот модуль и там посмотреть, как реализованы методы класса TRegistry.
Примечание
Помимо TRegistry, в модуле Registry можно найти такие классы, KaKTReglniFile и TRegistrylniFile, позволяющие работать с реестром, как будто бы это INI-файл. В ряде случаев использование этих классов вместо TRegistry позволит сократить размер программы, да и значительно ее упростить.
В табл. 7.1 приведены свойства класса TRegistry.
Таблица 7.1. Свойства класса TRegistry
Список констант, которые могут объединяться операцией or для формирования значения свойства Access:
• KEY_QUERY_VALUE – получение значений параметров раздела;
• KEY_ENUMERATE_SUB_KEYS – возможность составления списка подразделов;
• KEY_SET_VALUE – создания параметров в разделе, задание их значений;
• KEY_CREATE_SUB_KEY – создание подразделов;
• KEY_CREATE_LINK – создание символических ссылок (здесь не рассматривается);
• KEY_NOTIFY – право на уведомление об изменении раздела и его подразделов (здесь не рассматривается);
• KEY_READ – комбинация значений KEY_QUERY_VALUE, KEY_ENUMERATE_ SUB_KEYS И KEY_NOTIFY;
• KEY_WRITE – комбинация3Ha4eHtriiKEY_SET_VALUE HKEY_CREATE_SUB_KEY;
• KEY_ALL_ACCESS – комбинация значений KEY_READ, KEY_WRITEH KEY_ CREATEJLINK.
Приводить список всех методов класса TRegistry в книге нерационально, да и незачем. Благо, названия методов говорят сами за себя, к тому же Delphi поставляется с неплохой справочной системой. Здесь же мы остановимся на рассмотрении некоторых особенностей работы с методами класса TRegistry.
Итак, работая с разделами реестра, важно (в общем случае) соблюдать следующую последовательность.
1. Установить значение свойства RootKey, если корневой раздел отличен от HKEY_CURENT_USER. Установить значение свойства Access, если не нужен полный доступ.
2. Открыть методом ОрегКеу или создать методом CreateKey раздел реестра. Если использовать OperKeyReadOnly, то задавать значение свойства Access, как сказано в пункте 1, не имеет смысла.
3. Произвести нужные операции с элементами раздела.
4. Не забыть закрыть раздел, по крайней мере, если вы собираетесь использовать один и тот же объект TRegistry для последовательной работы с несколькими разделами (метод ОрепКеу не закрывает ранее открытый раздел).
Теперь несколько слов о проверке успешности работы методов класса TRegistry. Итак, большинство методов этого класса, осуществляющих доступ к разделам реестра, реализованы как функции, возвращающие True в случае успеха и False при возникновении ошибки. Вероятно, по каким-то чрезвычайно сложным соображениям разработчики класса TRegistry реализовали-таки функцию (!) CreateKey генерирующей исключение ERegistryException в случае неудачи, а не возвращающей значение True или False.
Для чтения/записи параметров разного типа в классе TRegistry предусмотрены пары Read– и Write-методов. Использовать их крайне просто, в чем вы убедитесь далее. Главное, при использовании этих методов не забывать определить тип значений параметров, если он заранее вам точно не известен, например с помощью функции GetDataType. Следует также помнить, что методы работы с параметрами генерируют исключение ERegistryException при возникновении ошибок.
И напоследок о параметре (По умолчанию) – он может присутствовать в каждом разделе. Для обращения к этому параметру используйте пустую строку в качестве имени раздела. Только нужно учитывать, что, в отличие от более ранних версий Windows, в Windows 2000/ХР этот параметр автоматически не создается.
Хранение настроек программы в реестре
Первый простой пример демонстрирует, как можно использовать реестр для сохранения небольшого объема данных между запусками приложения.
Читать дальшеИнтервал:
Закладка: