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

Вниз

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

Наверх




Память: 0.44 MB
Время: 0.078 c
2-1159269540
iamdanil
2006-09-26 15:19
2006.10.15
Ещё два вопроса по мыши


3-1155380497
Andrew___*
2006-08-12 15:01
2006.10.15
Как скрыть повторяющиеся записи?


3-1155536671
rsa_
2006-08-14 10:24
2006.10.15
что наиболее надежнее эффективнее? MySQL or MSSQL?


8-1142771948
GuAV
2006-03-19 15:39
2006.10.15
Анимация перемещения картинки.


1-1157642594
DroNIX
2006-09-07 19:23
2006.10.15
Нажатие клавиш по определённому алгоритму





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