Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.19;
Скачать: CL | DM;

Вниз

DbGrid   Найти похожие ветки 

 
Konrads   (2004-08-24 08:10) [0]

Есть у меня старенькая программа, в которой около 20 форм и на каждой по нескольку DbGrid. Писал её давно, когда колёса на мышах ещё небыли приняты за стандарт. Сейчас возникла проблема связанная с неадекватным поведением стандартного DbGrid на скроллинг при помощи колеса мыши. Как можно просто, одним чёхом поменять все DbGrid на к примеру JvDbGrid, у которого колесо работает нормально?


 
Алхимик ©   (2004-08-24 08:53) [1]

Описание в dfm каким нить WinCommanderom


 
roottim ©   (2004-08-24 09:02) [2]

тебе наверно будет проще дописать стандартный TDbGrid
2-я методами
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;


в одном TDataSet.Next в другом Prev (может еще пару проверок добавить)
и переписывать ничего ненадо!


 
Skyle ©   (2004-08-24 09:05) [3]


> 2] roottim ©   (24.08.04 09:02)

Не думаю, что в случае

>  около 20 форм и на каждой по нескольку DbGrid

это будет правильно.
Вернее будет

> [1] Алхимик ©   (24.08.04 08:53)


 
Алхимик ©   (2004-08-24 09:09) [4]


> [3] Skyle ©   (24.08.04 09:05)

А может и [2] вернее. В "общем" случае завязываться на сторонние компоненты без нужды не стоит. Особенно если они платные и без исходников.


 
Fynjy1984 ©   (2004-08-24 09:12) [5]

У меня сработало так:
На любую форму кладешь ApplicationEvents и пишешь следующий обработчик:

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
var
  i: SmallInt;
begin
  if Msg.message = WM_MOUSEWHEEL then
  begin
   Msg.message := WM_KEYDOWN;
   Msg.lParam := 0;
   i := HiWord(Msg.wParam) ;
   if i > 0 then
      Msg.wParam := VK_UP
   else
      Msg.wParam := VK_DOWN;

   Handled := False;
  end;
end;


 
Skyle ©   (2004-08-24 09:15) [6]


>  [4] Алхимик ©   (24.08.04 09:09)

А что если сделать компонент, в котором просто перекрыта реакция на колесо и потом [2]? В случае, когда от грида больше ничего не надо, это поведение мне кажется вполне естественным. + можно будет использовать этот грид в других программах. Ну или перейти на другую версию дельфей, там вроде грид уже нормально с колесом работает.


 
roottim ©   (2004-08-24 09:19) [7]


> Skyle ©   (24.08.04 09:05) [3]
>
> > 2] roottim ©   (24.08.04 09:02)
>
> Не думаю, что в случае
>
> >  около 20 форм и на каждой по нескольку DbGrid
>
> это будет правильно.


а что тут такого, я же не предлагал написать свой компонент, я говорю дописать в коде TDbGrida эти методы и перекомпилировать проект.. вот и все!


 
Алхимик ©   (2004-08-24 09:21) [8]


> [6] Skyle ©   (24.08.04 09:15)

И я про то. А с переходом на D7 с левыми компонентами проблемсы могут возникать.


 
Konrads   (2004-08-24 11:19) [9]

to roottim
Большое спасибо
Добавил в класс TCustomDBGrid
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;

И далее описал
   function TCustomDBGrid.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean;
   begin
      DataSource.DataSet.Next;
   end;
   function TCustomDBGrid.DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean;
   begin
      DataSource.DataSet.Prior;
   end;
Ничего больше не добавлял, и начало и конец списка обрабатывает как надо


 
Skyle ©   (2004-08-24 11:43) [10]


> [7] roottim ©   (24.08.04 09:19)


> [8] Алхимик ©   (24.08.04 09:21)

Звери.... ;-)



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

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

Наверх




Память: 0.49 MB
Время: 0.054 c
1-1093959220
antonn
2004-08-31 17:33
2004.09.19
Интернета


1-1093895732
d_oleg
2004-08-30 23:55
2004.09.19
Цвет TPanel под WinXP с включёнными visual styles


1-1094464161
NewDelpher
2004-09-06 13:49
2004.09.19
TMainMenu и клавиша F10


1-1094044863
GrayFace
2004-09-01 17:21
2004.09.19
Чем отличается Ctrl+F1 от F1?


9-1073679215
Stalker_23b
2004-01-09 23:13
2004.09.19
РЕАЛИСТИЧНАЯ Физика в игре.