Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.022 c
1-52859
NAlexey
2003-02-07 13:58
2003.02.17
HotTrack - PageControl - OwnerDraw?


6-53147
VIB
2002-12-24 14:42
2003.02.17
Сообщение


1-53035
Sergei
2003-02-06 12:52
2003.02.17
Технология IDL


1-53072
Tyo
2003-02-06 17:06
2003.02.17
---|Ветка была без названия|---


7-53286
Драмнбэйс
2002-12-12 22:42
2003.02.17
перехват звуков