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