![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение параметра из реестра. [D3, D4, Win95/98, WinME]
Exploited © (2002-06-12 15:03:00)Здравствуйте!
Мне нужно всего лишь прочитать параметр ключа. И, если есть таковой - отметить Checkbox5, если нет - снять отметку. Я пытаюсь это сделать таким образом, но получаю ошибку "Access......". Что я делаю неправильно?
procedure CheckAutoRunKey;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey("Software\Microsoft\Windows\CurrentVersion\Run",false);
if reg.ValueExists("Reminder about...") then
Form1.Checkbox5.Checked:=true
else
Form1.Checkbox5.Checked:=false;
reg.CloseKey;
reg.free;
end;
И еще - посоветуйте где лучше вызывать данную функцию. Мне нужно, чтобы считывание происходило во время загрузки программы.
VID (2002-06-12 15:26:00) [21]В коде ошибок нету. Думается, что ты вызываешь эту функцию в TForm1.FormCreate. Если так, то твой "Access violation" вполне понятен, т.к. на момент onCreate объекта Form1, CheckBox1 ещё не существует... не родился ещё :)
Корче вызывай функцию при событии TForm1.OnShow:
Procedure TForm1.Formshow (...);
begin
IF Form1.tag = 0 then
begin //Гарантируется однократный вызов функции, только при первом отображении(show) формы
Form1.Tag := 1;
CheckAutoRunKey;
end;
end;
Главное, что бы при создании формы Form1.Tag был равен 0, и вообще не использовать это свойство (tag) во всей программе.