Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.043 c
2-1159540488
Весь в делах
2006-09-29 18:34
2006.10.15
Иконки


5-1141114827
Creative
2006-02-28 11:20
2006.10.15
ссылка на объект в строке StringGrid`а


15-1158776134
Ne-Lud
2006-09-20 22:15
2006.10.15
Борьба с блужданием ума.


4-1148931253
Ihor Osov'yak
2006-05-29 23:34
2006.10.15
win32 subsystem on win64, RegRestoreKey


15-1158908682
Opilki_Inside
2006-09-22 11:04
2006.10.15
Парсер аргументов командной строки