Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.059 c
3-1092907138
Loaderz
2004-08-19 13:18
2004.09.19
Где здесь Ошибка???


14-1093525768
Копир
2004-08-26 17:09
2004.09.19
H E L P. Damned Javaw !


1-1093842109
Stype
2004-08-30 09:01
2004.09.19
Сложные формы


3-1093074705
Lizka
2004-08-21 11:51
2004.09.19
Добавить все записи из DBLookupListBox в ListBox


1-1093886739
Jiurasrasr
2004-08-30 21:25
2004.09.19
Переключение форм в MDI приложении





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский