Главная страница
    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.046 c
1-1094047008
bloodman
2004-09-01 17:56
2004.09.19
Возможно ли передать в процедуру динамический массив?


3-1092992465
WellSlava
2004-08-20 13:01
2004.09.19
Изменяемое виртульное поле набора данных


14-1092995027
Kerk
2004-08-20 13:43
2004.09.19
"Ночной дозор" купили американцы


6-1089387297
SnapIn
2004-07-09 19:34
2004.09.19
Анализ сетевого трафика


3-1093237909
Teenager
2004-08-23 09:11
2004.09.19
Как можно создать БД что бы сделать справочник в виде таблицы ?





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