![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGrid [D5, MSSQL]
Марат © (2004-06-11 12:20:00)Здрвствуйте, мастера. Вопрос такой. На одной из форм проекта создается запрос (Query1), который отображается на DBGrid1 (DataSource1). Затем по ID-шник текущей строки DBGrid1 запоминается в переменную ID_Cur:=Query1ID.AsInteger. По нажатию на Button2 открывается вторая форма в которой выполняется запрос, связанный с ID_Cur. Все это работает, но есть одна загвоздка- при открытии формы №1 DBGrid1 естественно пустой (пока не нажмем Button1) и при нажатии на Button2 выдается ошибка, т.к. ID_Cur=0. Пробовал избавится так:
if Query1.recordcount=0 then
showmessage('Невозможно открыть форму №2');
exit;
else
ID_Cur:=Query1ID.AsInteger;
ругается на close DataSet
Что делать?
NAlexey (2004-06-11 14:06:00) [1]>If not Query1.IsEmpty then Button2.Enabled := True
>else Button2.Enabled := False;
Както мудрЁно ты это все...
bushmen (2004-06-11 13:46:00) [2]>Соловьев © (11.06.04 12:44) [5]
Можно и так. Я просто суть рассказал. А как реализовать - дело того, кто вопрос задал.
Соловьев (2004-06-11 12:44:00) [3]
> [4] bushmen © (11.06.04 12:35)
для таких целей надо Action использовать
bushmen (2004-06-11 12:35:00) [4]Все можно сделать гораздо проще. В дизайнере устанавливаешь Button2.Enabled в False. При нажатии в программе на Button1 после
Query1.Open пишешь:
If not Query1.IsEmpty then Button2.Enabled := True
else Button2.Enabled := False;
roottim (2004-06-11 12:32:00) [5]
ID_Cur := -1;
if (Query1.Active) and (not Query1.IsEmpty) then
showmessage('Невозможно открыть форму №2')
else
ID_Cur:=Query1ID.AsInteger;
Соловьев (2004-06-11 12:31:00) [6]
> ID_Cur:=Query1ID.AsInteger
Qeury1.OnAfterScroll
> ругается на close DataSet
if Query1.Active then
if Query1.recordcount=0 then
showmessage('Невозможно открыть форму №2');
exit;
else
ID_Cur:=Query1ID.AsInteger;
stone (2004-06-11 12:30:00) [7]
> if Query1.recordcount=0 then
if Query1.Active and not Query1.IsEmpty then
ID_Cur:=Query1ID.AsInteger
else
showmessage('Невозможно открыть форму №2');