Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2011, 00:12   #1
DENIS_1992
Пользователь
 
Регистрация: 29.05.2011
Сообщений: 24
Восклицание Работа с CASE и TreeView и Реестром

Пишу курсовую редактор реестра. У меня всё работает, но только для одной ветви реестра. Мне необходима работа со всеми ветвями реестра.
Вот код программы:

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
Var
s,tip,str:string;
KeyInfo: TRegKeyInfo;
ValueNames: TStringList; //имя параметра
i: integer;
DataType: TRegDataType;
begin
Reg.RootKey:=HKEY_CURRENT_USER;//открываем раздел для работы с ним
ListView1.Items.Clear; //очищаем ListView
s:=GetFullNodeName(Node); //вызов функции для получения имени подраздела
if not Reg.OpenKeyReadOnly(s) then Exit;//если больше нет катологов, то выходим из процедуры
Reg.GetKeyInfo(KeyInfo);//получаем сведения о подразделе
if KeyInfo.NumValues<=0 then Exit;//если нет параметров, то выходим из процедуры
ValueNames:=TStringList.Create;
Reg.GetValueNames(ValueNames);//получаем сведения о параметре
for i:=0 to ValueNames.Count-1 do
with ListView1.Items.Add do
begin
Caption:=ValueNames[i];
DataType:=Reg.GetDataType(ValueName s[i]);
Case DataType of
rdString: s :=Reg.ReadString(ValueNames[i]);
rdInteger: s :='0x'+IntToHex(Reg.ReadInteger(Val ueNames[i]),8);
rdExpandString: s:=Reg.ReadString(ValueNames[i]);
else s:='неизвестный параметр';
end;
SubItems.Add(s);
Case DataType of
rdString: tip :='Строковый';
rdInteger: tip :='DWORD';
rdExpandString: tip:='Расширенная строка';
rdBinary: tip :='Бинарный';
else tip:='неизвестный тип';
end;
SubItems.Add(tip);
ImageIndex:=1;
end;
ValueNames.Free;
end;

строка Reg.RootKey:=HKEY_CURRENT_USER открывает для работы только эту ветвь реестра. Как при помощи Case в зависимости от выбранного в TreeView самого верхнего раздела, работать с определённой ветвью реестра

Пробовал вставлять такой код:
Var
.....
str: string;
....
begin
str: TreeView1.TopItem.Text;
Case Str of
'HKEY_CURRENT_USER': Reg.RootKey:=HKEY_CURRENT_USER;
'HKEY_USERS': Reg.RootKey:=HKEY_USERS;
end;
....
Не работает!!! Помогите пожалуйста закончить курсовой
DENIS_1992 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с реестром? angelada Помощь студентам 4 19.01.2011 12:12
работа с реестром alex0097 Общие вопросы Delphi 1 13.07.2010 10:20
работа с реестром Sharp_eye Помощь студентам 8 21.06.2009 00:05
Работа с реестром Pr1meEX Общие вопросы Delphi 0 17.06.2009 00:01
Работа с реестром. eL1tE Общие вопросы Delphi 5 16.04.2007 15:48