Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Чтение параметра из реестра. [D3, D4, Win95/98, WinME]


Страницы:   1 2

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) во всей программе.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо