Форум: "Основная";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];
Внизисключение не ловится :( Найти похожие ветки
← →
Alexis (2003-12-25 18:53) [0]Допустим, в ключе HKey_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer значение "NoDrives" Reg_Binary, а не Reg_Dword, как обычно.Мне надо прочесть из него значение, используя обработку исключения.
Вот код:
procedure TForm1.Button1Click(Sender: TObject);
var r:TRegistry;k:integer;
begin
r:=TRegistry.Create;
r.RootKey:=HKey_Current_User;
r.OpenKey("Software\Microsoft\Windows\CurrentVersion\Policies\Explorer",false);
try
k:=r.ReadInteger("NoDrives");
showmessage("NoDrives value= "+inttostr(k));
except on ERegistryException do
showmessage("NoDrives contains not integer value");
end;
end;
Что не так? При запуске showmessage не срабатывает, все-равно вылазит исключение ERegistryException, но ведь я его обрабатываю!
Благодарю.
← →
Тимохов (2003-12-25 19:02) [1]Ты пройдись отладчиком и удостоверься, что исключение происходит именно на строке k:=r.ReadInteger("NoDrives");, а не раньше.
← →
Alexis (2003-12-25 19:24) [2]Именно на этой! Может надо в Classes описание исключения добавить?
← →
panov (2003-12-25 19:32) [3]При запуске showmessage не срабатывает
Который showmessage?
← →
Тимохов (2003-12-25 19:35) [4]Я не поленился - проверил, этот код отрабатывает у меня как надо. У тебя ошибка не в этом try except, а где-то еще. Где? Ищи.
← →
Alexis (2003-12-25 19:39) [5]У тебя в разделе Uses все стандартное, дополнительных модулей не используешь?
2panov-ни тот, ни другой
← →
Юрий Зотов (2003-12-25 19:44) [6]> Alexis
Запускаете программу из-под Delphi или автономно?
← →
Тимохов (2003-12-25 19:45) [7]Не использую.
Еще может быть ошибка в том (хотя я совсем не уверен), что у тебя есть другой класс ERegistryException и именно он имеется здесь в виду.
← →
Alexis (2003-12-25 19:50) [8]И как же отловить это исключение?
2Юрий Зотов-и так, и так фигня получается-оба раза Error.
← →
Тимохов (2003-12-25 19:59) [9]Напиши просто
except
showmessage("NoDrives contains not integer value");
end;
будет в этом случае видно сообщение "NoDrives contains not integer value"?
← →
Alexis (2003-12-25 20:19) [10]Вообще не компилирует.
procedure TForm1.Button1Click(Sender: TObject);
var r:TRegistry;k:integer;
begin
r:=TRegistry.Create;
r.RootKey:=HKey_Current_User;
r.OpenKey("Software\Microsoft\Windows\CurrentVersion\Policies\Explorer",false);
k:=r.ReadInteger("Nodrives");
showmessage("NoDrives contains "+inttostr(k));
except (ошибка тут)
showmessage("Nodrives is not integer type data!");
end;
end;
END expected but EXCEPT found
← →
Тимохов (2003-12-25 20:26) [11]try где?
← →
Юрий Зотов (2003-12-25 20:28) [12]И что-то Free тоже не видно.
← →
Alexis (2003-12-25 20:37) [13]Исправил. Но один фиг не обрабатывает исключения:
procedure TForm1.Button1Click(Sender: TObject);
var r:TRegistry;k:integer;
begin
r:=TRegistry.Create;
r.RootKey:=HKey_Current_User;
r.OpenKey("Software\Microsoft\Windows\CurrentVersion\Policies\Explorer",false);
try
k:=r.ReadInteger("Nodrives");
showmessage("NoDrives contains "+inttostr(k));
except
showmessage("Nodrives is not integer type data!");
end;
end;
Помогите, plz...
← →
Zelius (2003-12-25 20:45) [14]попробуй запустить программу не из под дельфов или убрать галку "stop on delphi exceptions"
← →
Alexis (2003-12-25 21:00) [15]2Zelius - спасибо, все нормально работает.Но при запуске кода из Delphi все равно не обрабатывается исключение :( , хотя должно!
Хотелось бы все же выяснить, почему?
P.S.Где эта опция-stop on delphi exceptions (сорри, что-то не нашел)
← →
Юрий Зотов (2003-12-25 21:14) [16]> Alexis © (25.12.03 21:00) [15]
Зачем Вы, извините, пудрите людям мозги с несуществующей проблемой?
В [6] я Вас спросил: "Запускаете программу из-под Delphi или автономно"?
В [8] Вы мне ответили: "и так, и так фигня получается-оба раза Error".
И, извините, соврали. ЗАЧЕМ?
У Вас все работает так, как и должно работать. Если не считать утечки памяти - но это уже другая проблема.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c