Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2010, 22:00   #1
M@riy@
Пользователь
 
Регистрация: 23.09.2010
Сообщений: 11
Печаль DBGrid и колесико мыши(скроллинг)

Здравствуйте! Как известно, у стандартного DBGrid'а (Delphi 7) колесо мыши работает только в области видимой "части" базы данных, нужно сделать, что бы переход осуществлялся по всем строкам таблицы (а не только видимым). МЕНЯТЬ СТАНДАРТНЫЙ DBGrid НА ЧТО ЛИБО ДРУГОЕ НЕ МОГУ!!! Пробовала сделать вот так:
Код:
 private   
 { Private declarations }
   procedure MouseWheelHandler(var Message: TMessage);
override;
  public    
{ Public declarations }
  end;
 
var  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.MouseWheelHandler(var Message: TMessage);
var  
p:TPoint;
begin
GetCursorPos(p);
If WindowFromPoint(p)=DBGrid1.Handle then
begin
  If Message.WParam<0
 then
  DBGrid1.Perform(WM_VSCROLL, SB_LINEDOWN, 0) 
 else
  DBGrid1.Perform(WM_VSCROLL, SB_LINEUP, 0);
end;
end;
, но так, при прокручивании, перескакивает сразу на последнюю строку, игнорирую те, что были между первой (или любой другой выбранной строкой) и последней. Как можно исправить эту проблему??? или я что-то слелала не так?

Последний раз редактировалось Stilet; 30.10.2010 в 22:02.
M@riy@ вне форума Ответить с цитированием
Старый 30.10.2010, 22:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
  If Message.WParam<0
 then
  DBGrid1.DataSource.DataSet.FindNext
 else
  DBGrid1.DataSource.DataSet.FindPrev;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2010, 23:12   #3
M@riy@
Пользователь
 
Регистрация: 23.09.2010
Сообщений: 11
По умолчанию

Сначала переходил через строчку, а как дошел до конца страницы(при попытке дальнейшего прокручивания) дал ошибку : "TADOQuery:Record not found" (FindPrev Делфи почему то не знает, сделала через FindPrior)
M@riy@ вне форума Ответить с цитированием
Старый 30.10.2010, 23:47   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Введите проверки на ADOQuery.Eof и ADOQuery.Bof...
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение ячейки в DBGrid правой кнопкой мыши RIO БД в Delphi 2 20.08.2009 17:53
TСhart, клик мыши и координаты XY, Определение координат оси при клике мыши Aravild Компоненты Delphi 1 31.01.2009 16:28
Можно ли макросом, отключить колесико мышки valerij Microsoft Office Excel 8 18.11.2008 16:52
Multiselect в dbgrid только при помощи мыши Ary Компоненты Delphi 2 09.04.2008 15:26