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

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

Перемещение в DBGrid


Страницы:   1 2

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 только для проверки (можно вообщемто куда угодно выводить).


Страницы:   1 2

Наверх

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