![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вообще это правильно делается? [D6, WinXP]
brestmarket © (2002-10-23 02:12:00)Использую FRegIniFile для чтения/записи значений реестра, напр.
chb1.Checked := FRegIniFile.ReadBool("", "chbOpenNewWind", False);
Код чтения должен обязательно выполняться в одной форме, а значения из реестра должны писаться в другой форме - при попытке использования кода чтения из реестра в Form1.Create одной формы и запись значений в другую - ошибка.
Как ее избежать?
Рыжик (2002-10-23 14:07:00) [1]Ладно, если надо,чтобы первая была главной, то создавайте её первой, но не пишите в неё ничего. А в OnCreate второй формы вызывайте метод первой формы, который будет читать,писать и т.д.
brestmarket (2002-10-23 13:46:00) [2]Я так и делаю, но, хоть вторая форма и Visible=False все равно показывается при запуске приложения, т.к. становиться Main. Как запустить ее раньше других, оставив невидимой и показав первой Form1 ?
Рыжик (2002-10-23 13:24:00) [3]Ответ очевиден: сперва создать вторую форму, а потом уже первую ;)
brestmarket (2002-10-23 13:08:00) [4]Да, Рыжик абсолютно прав - все как-раз происходит из-за предварительного вызова второй формы, куда и должны заносится значения из реестра. Как-же при запуске первой формы добавить во вторую - куда запихнуть этот код?
Рыжик (2002-10-23 10:31:00) [5]Может быть Form2 создаётся после Form1? Тогда при Form1.Create формы Form2 ещё нет. И сл-но попытка написать туда чего-то не пройдёт. Посмотрите в файле проекта (который *.dpr) последовательность создания форм.
Separator (2002-10-23 08:14:00) [6]Приведи свой код
DeadHDD (2002-10-23 07:01:00) [7]Какая ошибка именно?