Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];




Вниз

Работа со строками в DBGrid 


Oleg_K   (2001-12-08 12:42) [0]

Имеется DBGrid в котором есть несколько полей с десятком записей. Нужно, чтобы после наведения курсора и двойного клика мыша в определенной строке открывалось новая конкретная форма (тоже DBGrid). Проблема в том как отследить одинарный клик (переход) на конкретную строку? Для StringGrid"а существует такая чудная функция как SelectCell, где этот вопрос успешно решается, а у DBGrida eё нет...
Т.к. в Делфях я новичок, то plz, поподробнее.
Заранее благодарю за ваш ответ.



evgeg   (2001-12-08 13:12) [1]

Следить надо за набором данных (TTable, TQuery), связанных с этим DBGrid-м.



Oleg_K   (2001-12-08 15:47) [2]

А как следить-то? (TQuery я не использую)
Можно небольшой примерчик (на е-мыл)?. Нужно ведь всего-то навсего примитив: если что-то равно чему-то, то открыть другой DBGrid и т.д.
Отслеживание нужно только чтобы зать какой DBGrid открывать.



evgeg   (2001-12-08 16:15) [3]

procedure TForm1.DBGrid1DblClick (Sender: TObject);
begin
if Table1.FieldByName ("A") = 3 then
OpenAnotherGrid;
end;



Oleg_K   (2001-12-08 20:51) [4]

Благодарю, так работает, но я в прошлый раз не совсем верно отобразил свою ситуацию. Мне нужно как-то определять порядковый номер выделенной строки DBGrida и в зависимости от этого открывать другую базу. Приведенный вами метод эффективен если база не большая и не будет изменяться, тобишь заведомо известны значения ячеек. В моем случае баз будет более сотни. Все они небольшого размера (10-15 записей) и имеют различные типы полей, в них нет пронумерованного поля. Можно создать такое поле, сделать его инвизиблом и применить предложенный вами метод, но проделывать эту операцию с сотней баз... :) Тем более, что необходима возможность дополнения базы (не мной).

Что вы могли бы посоветовать?



evgeg   (2001-12-08 21:03) [5]

TTable.RecNo возвращает номер текущей записи.
Это свойство корректно работает в dBase и Paradox базах, в SQL-серверах всегда возвращает -1.



Anatoly Podgoretsky   (2001-12-08 23:32) [6]

Oleg_K (08.12.01 20:51)
Что вы могли бы посоветовать?

А по какому принципу ты собираешь открывать другую "базу"? Ведь что то является критерия, нельзя же на деревню дедушке.



Oleg_K   (2001-12-13 15:07) [7]

To evgeg: Премного благодарен. Это именно то, что мне было нужно. Все гениальное - просто :). Я как раз и использую dBase"овские базы.

To Anatoly Podgoretsky: Все довольно примитивно. Если активна запись 1, то отрыть 1.dbf, если актина запись 2, то - 2.dbf и т.д.(утрируя). Поля разные, поэтому я не могу выделить определенный ключ.




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.014 c
4-42637           DDN                   2001-11-09 23:52  2002.01.14  
VirtualQuery


3-42355           madx                  2001-12-08 22:11  2002.01.14  
Ребят, подскажите начинающему...


1-42497           Victor                2001-12-25 19:40  2002.01.14  
ColorDialog


4-42610           -=CrazyFish=-         2001-11-13 21:30  2002.01.14  
перерисовка ScrollBar


1-42489           AndrewK               2001-12-24 17:49  2002.01.14  
Как организовать систему?