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

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

dBGrid


dimablind ©   (2003-10-31 23:31:00) 

Здравствуйте, уважаемые кодеры! Уповаю на Вашу помощь!
Имею на форме 7 кнопок. В зависимости от номера нажатой кнопки
формирую запрос, результат которого вывожу в dbgrid. На форме он появляется только после нажатия кнопки (visible:=true). До нажатия кнопки он невидим ( visible:=false).
Он не выводит в себя данные. Ничего не происходит, если пытаться в нем что-нибудь набрать.
Пытался отключать у него datasource и подключать непосредственно перед выводом на экран. Никаких результатов.
Поскажите, пожалуйста, в чем может быть дело? Связано ли это с тем, что он на форме первоначально невидим?
Да, запрос работает правильно.
Спасибо!


P.N.P.   (2003-11-02 03:48:00) [1]


> Он не выводит в себя данные. Ничего не происходит, если
> пытаться в нем что-нибудь набрать

Ясен пень, это же TQuery, а не TDataset или TTable


Плохиш_   (2003-11-02 03:41:00) [2]

>dimablind (01.11.03 13:19) [3]

Короче:

procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.close;
case (Sender as TButton).Tag of
1: Query1.Params[0].AsString:="South America";
2: Query1.Params[0].AsString:="North America";
3: Query1.Params[0].AsString:="America";
end;
Query1.open;
DBGrid1.visible:=true;
DBGrid1.SetFocus;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_escape then
if dbgrid1.focused then
begin
query1.close;
dbgrid1.visible:=false;
end;
end;


прекрасно работает.
Ищи ошибку в 17й строке с помощью F7/F8


Beginner3000   (2003-11-02 00:36:00) [3]

dbgrid1.datasource:=nil
думаю не надо

по поводу невидимости:
это зависит от того кому не видим
если пользователю - то всё в порядке
а если датасету, то плохо конечно


TohaNik   (2003-11-01 19:00:00) [4]

dbgrid1.datasource:=datasource1; поставь перед query1.close;


dimablind   (2003-11-01 13:19:00) [5]

Для простоты я пока сделал для одной кнопки:
procedure TForm1.sb1click (Sender as TObject);
begin
query1.close;
query1.params[0].asinteger:=query2.fieldbyname("number").asinteger;
query1.params[1].asstring:="1";
query1.open;
dbgrid1.datasource:=datasource1;
dbgrid1.visible:=true;
dbgrid1.setfocus;
end;
По нажатию клавиши escape он должен убираться с экрана.
procedure TForm1.formkeyup ...
begin
if key=vk_escape then
if dbgrid1.focused then
begin
query1.close;
dbgrid1.datasource:=nil;
dbgrid1.visible:=false;
end;
end;
Подчеркну, что запрос работает правильно, содержит данные , которые меня интересуют...


Stratos   (2003-11-01 03:54:00) [6]

А проверить Query1.Active = True? Ты чем запрос посылаешь?

PS: А за "кодеров"ответишь... ;)


Beginner3000   (2003-11-01 00:43:00) [7]

код в студию


Наверх

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