Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TRegistry


sergeyst ©   (2007-03-22 11:41:00) 

Пишу
Reg.OpenKey(.1.)
Reg.OpenKey(.2.)
Reg.OpenKey(.3.)
Reg.WriteString('sad',123);
а потом надо перейти на уровень 2
надо опять
Reg.Free;
и т.д. или есть способ по-проще?

Подскажите


RASkov   (2007-03-22 16:48:00) [1]

Reg.OpenKey('WorkViewer\PrintFor', True);
......
Reg.OpenKey('WorkViewer\PrintDiv', True);


clickmaker   (2007-03-22 16:23:00) [2]

рекурсия?
ну TRegistry так работает, что каждый OpenKey закрывает предыдущий. Используй АПИшные функции тогда или на каждый виток - свой TRegistry


sergeyst   (2007-03-22 16:19:00) [3]


> а чего надо-то? задача какая?

  задача - чтение/запись данных в реестре, нах-ся в определенном соотношении.
   Reg := TRegistry.Create;
   Reg.OpenKey('Software', True);
   Reg.OpenKey('EGA', True);
   Reg.OpenKey('WorkViewer', True); - основной раздел реестра программы

   Reg.OpenKey('PrintFor', True); - подраздел parent = 'WorkViewer'
   Reg.OpenKey('PrintDiv', True); - -//- parent = 'WorkViewer' и т.д.
Не загонять же все данные в один ключ - их и сейчас много, а в перспективе.... Или: подключ(данные)\подключ(данные)... - неохота.


RASkov   (2007-03-22 16:13:00) [4]

> И все же, как вернуться на шаг назад. Reg.OpenKey(2) из
> (3) - не работает

Представь, что ключи в реестре - это папки в проводнике, и как тебе вернуться из
С:\TEMP\DIR1\DIR2\DIR3
в
С:\TEMP\DIR1\
И найди отличие в
Reg.OpenKey('Key1\Key2')
от
Reg.OpenKey('\Key1\Key2')
и главное пойми....


clickmaker   (2007-03-22 15:54:00) [5]


> [5] sergeyst ©   (22.03.07 15:47)

а чего надо-то? задача какая?


sergeyst   (2007-03-22 15:47:00) [6]


> да как хочешь, можешь гонять.

нет, не могу. приходится Reg.CloseKey , а потом
Reg.OpenKey(.1.)
Reg.OpenKey(.2.)
Reg.OpenKey(.3.)

> Просто, раз ветку открыл, почему бы сразу все оттуда не
> прочитать?

У меня там дерево
2- это корень
3,4,5...- ветви, в которые я могу попасть только через корень2. Или я ошибаюсь?
И все же, как вернуться на шаг назад. Reg.OpenKey(2) из (3) - не работает.
на всякий случай - D7, XP


clickmaker   (2007-03-22 14:26:00) [7]


> [3] sergeyst ©   (22.03.07 13:26)

да как хочешь, можешь гонять. Просто, раз ветку открыл, почему бы сразу все оттуда не прочитать?


sergeyst   (2007-03-22 13:26:00) [8]


> а почему бы это не сделать, когда уже был там?

2 вроде как каталог, а 3, 4.. - подкаталоги.
т.е., если я правильно понял можно гонять туда-сюда по-порядочку?


clickmaker   (2007-03-22 11:47:00) [9]


> а потом надо перейти на уровень 2

а почему бы это не сделать, когда уже был там?


Правильный Вася   (2007-03-22 11:44:00) [10]

> а потом надо перейти на уровень 2
Reg.OpenKey(.2.)


Наверх

Титульная страница Поиск, карта сайта Написать письмо