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

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

Обращение к БД при активизации формы [D7]


Страницы:   1 2

Alex7 ©   (2005-12-30 08:38:00) 

Уважаемые мастера! С наступающим Вас!
Помогите, пожалуйста, решить следующую проблему:

В обработчике активизации формы мне нужно
обратиться к одному из полей БД.
Например:
procedure TForm1.FormActivate(Sender: TObject);
begin
r := Table1.Field[0].Text
end;
Компилятор выдает "Access violation".
Т.е, наверное обращаться во время активизации
нельзя. А от значени "r" зависит "Visible" соответствующего
компонента этой формы. Где выход?. Спасибо.


evvcom   (2005-12-30 09:21:00) [21]

ну да. Я это к части цитаты про OnCreate. Потому как в OnCreate, возможно и очень вероятно, что DataSet.Active = False. Если, конечно, автор еще в дизайне не пооткрывал все наборы сразу. :)


Johnmen   (2005-12-30 09:19:00) [22]

А если ещё и указатель не будет двигаться в НД, то и вообще ничего этого писАть не надо...:)


Digitman   (2005-12-30 09:17:00) [23]


> evvcom ©   (30.12.05 09:14) [2]


> лучше в DataSet.AfterOpen


можно и там, но при условии что значение поля не меняется на всём протяжении работы программы


evvcom   (2005-12-30 09:14:00) [24]


> к примеру, в обработчике OnCreate

лучше в DataSet.AfterOpen


Digitman   (2005-12-30 08:53:00) [25]


> Компилятор выдает "Access violation".


AV выдает не компилятор, а сама работающая программа.. компилятор тут совершенно ни при чем

скорее всего, объект Table1 в этот момент не существует


> Где выход?


а почему именно OnActivate ?

Это событие будет возникать всякий раз при получении формой фокуса..

А в твоем случае, наверно, достаточно будет единожды прочитать значение из поля таблицы .. к примеру, в обработчике OnCreate

Если же предполагается, что значение этого поля может изменяться в ходе работы программы, то самый простой выход - поместить код считывания значения поля в событие OnUpdate объекта TContainedAction в составе компонента TActionList, брошенного на форму в дизайн-тайм


Страницы:   1 2

Наверх

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