Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.29;
Скачать: CL | DM;

Вниз

Есть ли у DBGrid событие реагирующие когда пользователь перешел..   Найти похожие ветки 

 
maxim2 ©   (2002-08-09 07:39) [0]

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


 
Shaman ©   (2002-08-09 08:00) [1]

У dbGrid"а такого события нет, оно есть у TDataSet и называется OnScroll


 
maxim2 ©   (2002-08-09 08:04) [2]

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


 
Leran2002 ©   (2002-08-09 08:09) [3]

У компонента 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;

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


 
unfam ©   (2002-08-09 08:09) [4]

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


 
relict   (2002-08-09 08:20) [5]

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

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


 
maxim2 ©   (2002-08-09 08:20) [6]

Спасибочки!


 
nikolo ©   (2002-08-09 10:56) [7]

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


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

А как надо?


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

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


 
nikolo ©   (2002-08-09 11:21) [10]

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


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


> nikolo © (09.08.02 11:21)

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


 
nikolo ©   (2002-08-09 11:36) [12]

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


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

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


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

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


 
nikolo ©   (2002-08-09 11:57) [15]

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


 
Lusha ©   (2002-08-09 11:59) [16]

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

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


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

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


 
Lusha ©   (2002-08-09 12:58) [18]

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

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

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


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

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


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

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



 
Lusha ©   (2002-08-09 13:49) [21]

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

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



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

Текущий архив: 2002.08.29;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.023 c
1-95818
Лана Розанова
2002-08-16 16:03
2002.08.29
Help-Files


1-95754
Squ
2002-08-19 12:52
2002.08.29
Обработка исключений (exception)


1-95749
Sniffer
2002-08-19 00:02
2002.08.29
Чтение из текстового файла


14-95970
Rasa
2002-08-03 03:47
2002.08.29
Как обновить Винды после изменения реестра...?


1-95882
Андрусь
2002-08-13 20:34
2002.08.29
Помогите разобраться