Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.48 MB
Время: 0.007 c
3-95678
harismatik
2002-08-07 12:06
2002.08.29
Как и с помощью чего отобразить ?


3-95651
SlavaK
2002-08-07 18:11
2002.08.29
Delphi-SQLServer


3-95636
exciter_
2002-08-07 15:34
2002.08.29
IB6. Доступ к таблице в другой GDB.


3-95645
perov
2002-08-07 14:19
2002.08.29
Блокировка


1-95881
Flasher
2002-08-18 12:01
2002.08.29
Plug-in s





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский