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

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

Есть ли у DBGrid событие реагирующие когда пользователь перешел.. [D6]


Страницы:   1 2

maxim2 ©   (2002-08-09 07:39:00) 

Привет всем!
Есть ли у DBGrid событие реагирующие когда пользователь перешел на другую запись или как это можно отловить?


Lusha   (2002-08-09 13:49:00) [1]

>Mike Kouzmine (09.08.02 13:16)
TDataSet.Bookmark и все дела... Не надо путать типы TBookmark и TBookmarkStr... Это разные вещи...

>relict (09.08.02 13:25)
Извините, но я, с Вашего позволения, смотреть его (хелп) не буду, а останусь при своем мнении... :)


relict   (2002-08-09 13:25:00) [2]

>>>Не прокатит для перемещения при помощи полосы прокрутки...
тоже покатит...есть событие(не плмню)...посмотри хелп я делал
что когда щелкаеш по полосе одного грида второй перемещается на то же количество записей...в твоем случае будет своя продецерка..


Mike Kouzmine   (2002-08-09 13:16:00) [3]

Мне кажется, это сложнее. GetBookMark, FreeBookMark, отслеживать это дело. Хотя на вкус и цвет ....


Lusha   (2002-08-09 12:58:00) [4]

>Mike Kouzmine (09.08.02 12:48)
К сожалению, Вы меня не поняли...

...а проверять не изменились ли поля по которым можно однозначно идентифицировать запись...

...Для этого вполне можно использовать TDataSet.bookmark...


Mike Kouzmine   (2002-08-09 12:48:00) [5]

Lushе -> На AfterOpen читаешь в переменные поля, на DataChange сравниваешь и если изменились выполняешь действия и присваиваешь переменным новые значения, а букмарк здесь ни при чем.


Lusha   (2002-08-09 11:59:00) [6]

>nikolo © (09.08.02 11:57)
Угу... Особенно если вспомнить про свойство TDataSet.Bookmark...

>relict (09.08.02 08:20)
Не прокатит для перемещения при помощи полосы прокрутки...


nikolo   (2002-08-09 11:57:00) [7]

Mike Kouzmine, в общем, конечно, неплохой вариант... надо попробовать...


Mike Kouzmine   (2002-08-09 11:47:00) [8]

Лучше не рекно, а проверять не изменились ли поля по которым можно однозначно идентифицировать запись.
На Before - читаешь их, на After - сравниваешь.


SaS13   (2002-08-09 11:39:00) [9]

тогда при переходе проверять действительно ли менялся RecNo


nikolo   (2002-08-09 11:36:00) [10]

А если задача такая, что при переходе нужно делать какую-то страшную операцию :), что тогда?


SaS13   (2002-08-09 11:34:00) [11]


> nikolo © (09.08.02 11:21)

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


nikolo   (2002-08-09 11:21:00) [12]

Да, замечал. А как с этим можно бороться?


SaS13   (2002-08-09 11:11:00) [13]

>nikolo © (09.08.02 10:56)
когда встаешь со второй на первую запись события BOF не наступает, и поэтому датасет подразумевает перемещение еще раз вверх, при попытке переместиться возникает BOF (может замечал та же фича происходит в DBNavigator"e - кнопки доступны/недоступны), по аналогу и внизу - EOF.


Mike Kouzmine   (2002-08-09 11:04:00) [14]

А как надо?


nikolo   (2002-08-09 10:56:00) [15]

Кто скажет, почему если в grid например идти вверх, то когда переходишь со 2-й записи на 1-ю, то recno становится 1 и это правильно, но потом если еще раз нажать "вверх", то снова срабатывает событие AfterScroll и происходит как бы снова переход на 1-ю запись. Такая же фигня и с последней записью.


maxim2   (2002-08-09 08:20:00) [16]

Спасибочки!


relict   (2002-08-09 08:20:00) [17]

а ведь пользователю, чтобы перейти на другую запись нуна на чего нить нажать, мышкой ткнуть, или кнопки верх/низ нажать...

отлавливай эти события на Gride и ставь им одинаковые обработчики


unfam   (2002-08-09 08:09:00) [18]

TDataSource.OnDataChange
Occurs when the data in a record has changed, either due to field edits or moving the cursor to a new record.


Leran2002   (2002-08-09 08:09:00) [19]

У компонента TDataSource есть событие OnDataChange которое происходит при перемешениях и других действиях с набором данных.

MainDS: TDataSource;
...
procedure TDM.MainDSDataChange(Sender: TObject; Field: TField);
begin
MainFrm.StatusBar1.Panels[1].Text:=Trim(MainTblFAM.AsString)+" "+
Trim(MainTblNAM.AsString)+" "+
Trim(MainTblPAR.AsString);
end;

Мож это тебе подойдет...


maxim2   (2002-08-09 08:04:00) [20]

Что-то я его там необнаружил ?
Есть события BeforeScroll и AfterScroll но они не реагируют.


Страницы:   1 2

Наверх

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