![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перемещение в DBGrid
Stif © (2008-06-18 22:30:00)Как выводить значения таблицы (ShowMessage) при перемещении по DBGrid (Пока получается только при клике) стрелками на клавиатуре.
Anatoly Podgoretsky (2008-06-19 16:44:00) [1]Хоть перемещиение по набору/хоть перемещение по гриду оба вызовуют возникновение события before/AfterScroll, в отличии от OnDataChange там не так одназначно.
MsGuns (2008-06-19 14:29:00) [2]Блин, ну нетути там разницы. Атстань пративный ;)
Sergey13 (2008-06-19 14:26:00) [3]> [17] Anatoly Podgoretsky © (19.06.08 14:16)
Я не про ситуацию у автора, я про конкретный пост ганза, в котором он предлагает написать обработчик датасета и обращается в этом обработчике к этому самому датасету через грид.
Ega23 (2008-06-19 14:25:00) [4]
> См AfterScroll у ДатаСета
>
При чём здесь AfterScroll?
Anatoly Podgoretsky (2008-06-19 14:16:00) [5]> Sergey13 (19.06.2008 14:06:16) [16]
При том что сейчас перемещается по гриду стрелочками, про чего ты против, тогда остаются кнопочки и такой компонент тоже есть, дбнафигатор нажывается, вот это точно нафиг, лучше по старинке кнопочками по гриду.
Sergey13 (2008-06-19 14:06:00) [6]> [15] Anatoly Podgoretsky © (19.06.08 14:00)
А при чем тут кнопочки? В обработчике датасета.
Anatoly Podgoretsky (2008-06-19 14:00:00) [7]> Sergey13 (19.06.2008 9:01:14) [14]
А какой смысл делать дополнительный кнопочки?
Sergey13 (2008-06-19 09:01:00) [8]> [4] MsGuns © (18.06.08 22:53)
> А для этого у ентого датасетаимеется событие AfterScroll,
> и если написать в обработчике этого события
>
> ShowMessage( DBGrid1.DataSource.DataSet.Fields[0].AsString));
А какой смысл в данном случае идти к записи через грид?
Василий Жогарев (2008-06-19 08:37:00) [9]
> > Проблема в том что не могу понять какое событие срабатывает
>
> > при перемещении по гриду (TDBGrid) стрелками на клавиатуре
AfterScroll&BeforeScroll?...
Игорь Шевченко (2008-06-19 00:24:00) [10]
> Проблема в том что не могу понять какое событие срабатывает
> при перемещении по гриду (TDBGrid) стрелками на клавиатуре
Если вертикальными, то DataSource.DataChange
korneley (2008-06-19 00:14:00) [11]Поясню. Отвлекают, блин :) Есть опция, включающая "ожидание" при прокрутке "мастера", и лишь потом переоткрывается детайл. На самом деле это и есть тот самый "AfterScroll". Иногда полезно, иногда - нет. На маленьких базах и быстрых машинах - вредно (имхо, естественно, ну, так можно и не включать) А вот с ростом объёма - полезность явно прибывает. Хотя, опять же, по месту смотреть надо... От того и вопрос об используемых компонентах доступа к базе.
korneley (2008-06-18 23:49:00) [12]
> MsGuns © (18.06.08 23:38) [9]
Я не касаюсь макросов (это не совсем в тему), но избежать DataSet.Disable(Enable)Controls можно избежать. При связке мастер - детайл. Просто у события есть тайм-аут :)
MsGuns (2008-06-18 23:38:00) [13]Мне просто интересно, в чем заключается "ширистость" ?
korneley (2008-06-18 23:31:00) [14]
> MsGuns © (18.06.08 23:21) [7]
> Доллары рисовать умеют ?
Нормальная бумага + краска = лет 10 в итоге :) В фибовских компонентах управление AfterScroll порасширенней ( погибче?)
MsGuns (2008-06-18 23:21:00) [15]>Датасет-то он датасет, но ФИБ-ы поболе возможностей дают
Доллары рисовать умеют ?
korneley (2008-06-18 22:58:00) [16]
> MsGuns © (18.06.08 22:53) [4]
> А зачем ? Датасет - он и в Африке
> датасет
Датасет-то он датасет, но ФИБ-ы поболе возможностей дают ;) К тому же после [2] проблема обозначилась, так что, считаю миссию выполненной :)
MsGuns (2008-06-18 22:55:00) [17]А вот для того, чтобы "пасти" перемещение по полям одной и той же записи можно воспользоваться событиями самой сетки: OnColEnter, OnColExit
MsGuns (2008-06-18 22:53:00) [18]>korneley © (18.06.08 22:45) [1]
>Ну... для начала надо узнать название СУБД, типы используемых компонент(ов) и сообщить их имена. Здесь.
А зачем ? Датасет - он и в Африке датасет
По сабжу.
Отслеживать нужно перемещение не по гриду, а по датасету (причем фиолетово каким образом - кнопками, ползунками, мышкой, кошкой..)
А для этого у ентого датасета имеется событие AfterScroll, и если написать в обработчике этого события
ShowMessage(DBGrid1.DataSource.DataSet.Fields[0].AsString));
то каждый раз, когда текущая запись датасета (выделяемая как текущая строка в гриде) изменится, будет окошечко с содержимым 1-го поля датасета (например)
{RASkov} (2008-06-18 22:51:00) [19]> [2] Stif (18.06.08 22:49)
> ShowMessage только для проверки (можно вообщемто куда угодно
> выводить).
См AfterScroll у ДатаСета
Stif (2008-06-18 22:49:00) [20]Субд FireBird
Проблема в том что не могу понять какое событие срабатывает при перемещении по гриду (TDBGrid) стрелками на клавиатуре.
ShowMessage только для проверки (можно вообщемто куда угодно выводить).