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

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

GetKeyNames [D5, D6, Win95/98]


Cure ©   (2004-01-07 00:48:00) 

Почему не работает код:

var TS: TStrings;
    Reg: TRegistry;
begin
 TS := TStringLIST.Create;
 Reg := TRegistry.Create;
 Reg.RootKey := HKEY_CLASSES_ROOT;
 Reg.OpenKey('',false);
 Reg.GetKeyNames(TS);
end;

Мне нужно получить список всех подразделов, но процедура Reg.GetKeyNames ничего не дает. В чем моя ошибка?


VMcL   (2004-01-11 03:05:00) [1]

>>Anatoly Podgoretsky ©  (09.01.04 19:31) [4]
>>Но головной ключ имеет имя "/"

Гы. Это Вынь - тут "\", а в Линухе/Юнихе, если был бы реестр, то, наверное, было бы "/" :)))

В данном случае не важно. TRegistry использует относительный путь, если в начале строки не указан символ "\". Но поскольку еще ни одна ветка не открыта, то сам корневой ключ и открывается.


Anatoly Podgoretsky   (2004-01-09 19:31:00) [2]

VMcL ©   (09.01.04 18:58) [3]
Не заметил :-(
Но головной ключ имеет имя "/"


VMcL   (2004-01-09 18:58:00) [3]

>>app ©  (08.01.04 18:50) [2]

var TS: TStrings;
 Reg: TRegistry;
begin
TS := TStringLIST.Create;
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey('',false);
Reg.GetKeyNames(TS);
end;


>>Cure  (07.01.04 00:48)

Ты уверен, что OpenKey() вернул True?


app   (2004-01-08 18:50:00) [4]

Диагноз верный, надо использовать неследника от TStrings в котором реализованы абстрактные методы, сам TStrings не имеет средств хранения данных.


div   (2004-01-08 18:34:00) [5]

Очень странно но у меня все работает )))
Попробуй объявить TS: TStringList )))
и не забудь:
 ... ... ...
 TS.Free;
 Reg.Free;
end;


Наверх

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