Форум: "Базы";
Текущий архив: 2002.08.29;
Скачать: [xml.tar.bz2];
Вниз
Есть ли у 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.007 c