Вниз
Скачать: CL | DM;

прокрутка DBGrid колесом мыши   Найти похожие ветки 

 
aleko   (2006-09-27 00:27) [0]

Доброго времени суток, уважаемые мастера, подскажите как прокрутить сетку DBGrid при помощи колеса мыши?
Пробовал написать процедуру перехвата сообщения WM_MOUSEWHEEL и в зависимости от направления вращения колеса осуществлять переход в наборе данных Тable на соотвественно предыдущую или следующую строку - это работает, но только до тех пор пока я не щелкну по какой нибудь ячейке сетки - потом перемещается только выделение, а переход по записям не происходит, почему? Можно конечно сделать DBGrid неактивной или что-то в этом роде, тогда все нормально, но ведь это не выход.


 
Германн ©   (2006-09-27 00:34) [1]

Переходи на BDS2006. Там сей баг исправлен. Или посмотри реализацию в TRxDbGrid методов DoOnMouseWheelDown и DoOnMouseWheelUp и сделай у себя так же.


 
aleko   (2006-09-27 03:51) [2]

Спасибо. Нашел в Королевстве ответ - работает, привожу, может кому пригодится.
Подскажите что именно происходит при FormCreate, никак не могу врубиться? Сорри за идиотский вопрос, но хочется разобраться :)



type
 TForm1 = class(TForm)
...
 private
   { Private declarations }
   procedure NewGridWinProc(var Msg: TMessage);
...
 end;

implementation

var
 OldGridWinProc: TWndMethod;

procedure TForm1.FormCreate(Sender: TObject);
begin
...
 OldGridWinProc := DBGrid1.WindowProc;
 DBGrid1.WindowProc := NewGridWinProc;
...
end;

procedure TForm1.NewGridWinProc(var Msg: TMessage);
begin
 if Msg.Msg = WM_MOUSEWHEEL then begin
   if SmallInt(HiWord(Msg.wParam)) > 0
     then DBGrid1.DataSource.DataSet.Prior
     else DBGrid1.DataSource.DataSet.Next;
   Msg.Result := 1;
 end else OldGridWinProc(Msg);
end;



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.026 c
15-1159027855
alpha5
2006-09-23 20:10
2006.10.15
Не ставится компонент


15-1158598573
yozh_programmer
2006-09-18 20:56
2006.10.15
Не открывается Excel файл с макросом, MS OFFICE 2003


4-1147513821
parovoZZ
2006-05-13 13:50
2006.10.15
Криво работает окно в dll при вызове из VCL exe


15-1158503223
DiX
2006-09-17 18:27
2006.10.15
Защита от вмешательства


1-1155619531
el-eXtremo
2006-08-15 09:25
2006.10.15
есть ли модули по редактированию xml




   Наверх