Текущий архив: 2003.02.17;
Скачать: CL | DM;
ВнизAccess voilation при работе с реестром... Найти похожие ветки
← →
Соловьев (2003-02-06 11:13) [0]Мастера, кто-то сталкивался с такой траблой, при закрытии формы
ошибка Access violation... После исканий выяснилось что эта ошибка появляется при использовании такого кода:
procedure TfMain.FormCreate(Sender: TObject);
var Reg : TRegistry;
begin
try
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey("Software\Ckop\DB",false);
PathDB := Reg.ReadString("PATHDB");
finally
Reg.Free;
if PathDB="" then
with Application do
begin
MessageBox("Ви не маєте прав на користування данною программою. Зверніться до розробника.","Помилка",MB_OK or MB_DEFBUTTON1 or MB_ICONSTOP);
ShowAbout;
Terminate;
end;
end;
end;
Это глюки TRegistry или мои? Но где я не как непойму...
← →
Anatoly Podgoretsky (2003-02-06 11:20) [1]Твои конечно
← →
Соловьев (2003-02-06 11:21) [2]Ок, хорошо. А где если не секрет?
← →
Юрий Федоров (2003-02-06 11:24) [3]На FormCreate вызывать Application.Terminate как-то не очень хорошо, имхо. Лучще вставить проверку записи в реестре в файл DPR, и в случае проблем не создавать главную форму.
Или же поместить код в конструктор формы и при необходимости поднять Exception. ФОрма разрущится, приложение закроется.
← →
Соловьев (2003-02-06 11:26) [4]
> Юрий Федоров © (06.02.03 11:24)
> На FormCreate вызывать Application.Terminate как-то не очень
> хорошо, имхо.
Трабл не в этом, пусть я тут наглючил, но Программа туда и не попадает. PATHDB -существует и не пустой.
← →
Anatoly Podgoretsky (2003-02-06 11:33) [5]Соловьев © (06.02.03 11:21)
Так тебя оказывается совсем другой вопрос интересует, а не кто виноват?
Ну например это Reg := TRegistry.Create; поместить перед try
Например вот это ShowAbout; неизвестный фактор
Например вот это Terminate; как то странно делать в конструкторе
И главное, почему не хочешь говорить в какой строке у тебя происходит ошибка, это чего нам набрать твой коди и самим протрассировать?
← →
Соловьев (2003-02-06 11:38) [6]2 Anatoly Podgoretsky ©
> Ну например это Reg := TRegistry.Create; поместить перед
> try
Почему? Можно поконкретнее?
> Например вот это ShowAbout; неизвестный фактор
Это форма - расказывает о разработчике:
Application.MessageBox(
"Розробник ...."
,"Про програму...",MB_OK or MB_DEFBUTTON1 or MB_ICONINFORMATION);
> Например вот это Terminate; как то странно делать в конструкторе
Это я исправлю.
> И главное, почему не хочешь говорить в какой строке у тебя
> происходит ошибка, это чего нам набрать твой коди и самим
> протрассировать?
Ошибка, когда я закрываю форму. Нажимаю на [X]. Обработчика нет.
← →
Palladin (2003-02-06 11:57) [7]а какого рода изыскания подвели вас к решению что ошибка именно в этом коде?
← →
Соловьев (2003-02-06 11:59) [8]делаю коментарий {} на этот код и все работатет.
← →
Palladin (2003-02-06 12:10) [9]воспроизвел ситуацию и никакого exception не возникало.
D6,WinXP
← →
Anatoly Podgoretsky (2003-02-06 12:11) [10]Соловьев © (06.02.03 11:59)
Это не есть основание для такого вывода, ошибка может быть в другом месте, просто в этом случае она не возникает.
← →
Соловьев (2003-02-06 12:12) [11]А у меня Win2K(sp3)
← →
Palladin (2003-02-06 12:12) [12]советую проверить дальнейшую работу с переменной PathDB.
Страницы: 1 вся ветка
Текущий архив: 2003.02.17;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.009 c