Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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 и т.д.(утрируя). Поля разные, поэтому я не могу выделить определенный ключ.



Страницы: 1 вся ветка

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

Наверх




Память: 0.46 MB
Время: 0.004 c
4-42616
Kyd
2001-11-13 11:18
2002.01.14
SendMessage(MyHandle, WM_SetText, 0, Integer(TextToSet));


3-42366
comwad
2001-12-11 13:50
2002.01.14
LIKE в хранимой процедуре


1-42506
SlavaNew
2001-12-26 07:28
2002.01.14
Pointer: Как работает?


7-42576
РУС
2001-09-25 22:14
2002.01.14
Информация


1-42410
AVS
2001-12-25 19:09
2002.01.14
access public method





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский