![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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.)