![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа со строками в DBGrid [D5, dBase, FoxPro, ]
Oleg_K © (2001-12-08 12:42:00)Имеется DBGrid в котором есть несколько полей с десятком записей. Нужно, чтобы после наведения курсора и двойного клика мыша в определенной строке открывалось новая конкретная форма (тоже DBGrid). Проблема в том как отследить одинарный клик (переход) на конкретную строку? Для StringGrid"а существует такая чудная функция как SelectCell, где этот вопрос успешно решается, а у DBGrida eё нет...
Т.к. в Делфях я новичок, то plz, поподробнее.
Заранее благодарю за ваш ответ.
Oleg_K (2001-12-13 15:07:00) [1]To evgeg: Премного благодарен. Это именно то, что мне было нужно. Все гениальное - просто :). Я как раз и использую dBase"овские базы.
To Anatoly Podgoretsky: Все довольно примитивно. Если активна запись 1, то отрыть 1.dbf, если актина запись 2, то - 2.dbf и т.д.(утрируя). Поля разные, поэтому я не могу выделить определенный ключ.
Anatoly Podgoretsky (2001-12-08 23:32:00) [2]Oleg_K (08.12.01 20:51)
Что вы могли бы посоветовать?
А по какому принципу ты собираешь открывать другую "базу"? Ведь что то является критерия, нельзя же на деревню дедушке.
evgeg (2001-12-08 21:03:00) [3]TTable.RecNo возвращает номер текущей записи.
Это свойство корректно работает в dBase и Paradox базах, в SQL-серверах всегда возвращает -1.
Oleg_K (2001-12-08 20:51:00) [4]Благодарю, так работает, но я в прошлый раз не совсем верно отобразил свою ситуацию. Мне нужно как-то определять порядковый номер выделенной строки DBGrida и в зависимости от этого открывать другую базу. Приведенный вами метод эффективен если база не большая и не будет изменяться, тобишь заведомо известны значения ячеек. В моем случае баз будет более сотни. Все они небольшого размера (10-15 записей) и имеют различные типы полей, в них нет пронумерованного поля. Можно создать такое поле, сделать его инвизиблом и применить предложенный вами метод, но проделывать эту операцию с сотней баз... :) Тем более, что необходима возможность дополнения базы (не мной).
Что вы могли бы посоветовать?
evgeg (2001-12-08 16:15:00) [5]procedure TForm1.DBGrid1DblClick (Sender: TObject);
begin
if Table1.FieldByName ("A") = 3 then
OpenAnotherGrid;
end;
Oleg_K (2001-12-08 15:47:00) [6]А как следить-то? (TQuery я не использую)
Можно небольшой примерчик (на е-мыл)?. Нужно ведь всего-то навсего примитив: если что-то равно чему-то, то открыть другой DBGrid и т.д.
Отслеживание нужно только чтобы зать какой DBGrid открывать.
evgeg (2001-12-08 13:12:00) [7]Следить надо за набором данных (TTable, TQuery), связанных с этим DBGrid-м.