|
Вопрос # 125/ вопрос решён / |
|
Здраствуйте.
Необходимо при работе с реестром создать свой новый раздел. Как это можно это сделать через Tregistry?
 |
Вопрос задал: Князев А.А. (статус: Посетитель)
Вопрос отправлен: 5 октября 2006, 01:22
Состояние вопроса: решён, ответов: 2.
|
Ответ #1. Отвечает эксперт: min@y™
Вот простой пример сохранения настроек в реестре: с созданием раздела, если он не существует. Выдрал из своей проги.
Приложение: Переключить в обычный режим- procedure TSettings.Save;
- const
- SettingsRegKey = 'SoftwareMyProgaSettings';
- var
- Reg: TRegistry;
- begin
- Reg:= TRegistry.Create;
- try
- Reg.RootKey:= HKEY_CURRENT_USER;
- Reg.OpenKey(SettingsRegKey, True);
-
- Reg.WriteInteger('DownloadPictures', PictureFormats2Int(FDownloadPictures));
- Reg.WriteInteger('DownloadBufferSize', FDownloadBufferSize);
- Reg.WriteInteger('DownloadPaths', DownloadPaths2Int(FDownloadPaths));
-
- Reg.CloseKey;
- finally
- Reg.Free;
- end;
- end;
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 5 октября 2006, 09:10
Оценка за ответ: 5
Комментарий к оценке: Спасибо
|
Ответ #2. Отвечает эксперт: Alex Van Glukhman
Здравствуйте, Князев А.А.!
Приложение: Переключить в обычный режим- 1.В разделе uses
подключаем
модуль Registry
- 2.Объявляем
переменную
MyReg: TRegistry;
- 3.При
желании
объявляем
строковую
константу
названия
раздела. NK = 'NewKey'
- 4.В
основном
теле
программы
пишем:
-
- //Создаём
экземпляр
переменной
- MyReg:=TRegistry.Create;
- //Определяем
ROOT реестра -
по
умолчанию
его
- //значение
HKEY_CURRENT_USER
- MyReg.RootKey:=HKEY_CURRENT_CONFIG;
- //вводим
новый
раздел
- MyReg.Create(NK);
-
- ...
- Готово -
раздел
появился!
-
- для
доступа и
записи
значения в
ключ
используем
свойства CurrentPath
и WriteString(const Name: String; const Value: String), WriteInteger(const Name: String;
const Value: Integer) и т.д.
-
- Данный
метод не
работает в
NT с ReadOnly ROOT -
- HKEY_LOCAL_MACHINE и HKEY_USERS - для
них
необходимы
админовские
права для
приложения
-
 |
Ответ отправил: Alex Van Glukhman (статус: 7-ой класс)
Время отправки: 5 октября 2006, 11:30
Оценка за ответ: 5
Комментарий к оценке: еще раз спасибо
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 5 октября 2006, 15:43; участников в обсуждении: 3.
|
Князев А.А. (статус: Посетитель), 5 октября 2006, 10:20 [#1]:
А можно ли проверить, существует ли значение ключа под именем, например как у Вас, 'DownloadPictures'? KeyExists не подошло.
|
|
Alex Van Glukhman (статус: 7-ой класс), 5 октября 2006, 11:36 [#2]:
Можно проверить с помощью KeyExists, только в этом случае используем свойство RootKey и CurrentPath для определения узла из которого необходимо выдрать значение
|
|
min@y™ (статус: Доктор наук), 5 октября 2006, 15:43 [#3]:
[quote]
Князев А.А. (статус: Посетитель), 05.10.2006, 10:20:
А можно ли проверить, существует ли значение ключа под именем, например как у Вас, 'DownloadPictures'? KeyExists не подошло.
[/quote]
Хэлп - великая весчь! Почитай про класс TRegistry, там много интересного. Особенно метод [b]ValueExists method (TRegistry)[/b].
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
31 января 2011, 19:24: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|