C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Прокрутка в DBGrid, и колесо мыши.
Katame
Отправлено: 20.09.2004, 00:52


Не зарегистрирован







Как сделать, чтобы вертикальная прокрутка в DBGrid реагировала на колесо мыши?
AVC
Отправлено: 20.09.2004, 08:30


Ветеран

Группа: Модератор
Сообщений: 1583



Написать потомка и перекрыть методы. Например так:
CODE

//---------------------------------------------------------------------------
//     MouseWhell
//---------------------------------------------------------------------------

bool __fastcall TDBGridM::DoMouseWheelUp
(TShiftState Shift
,const Windows::TPoint& MousePos
)
{
if (!DataLink || !DataLink->Active) return true;

TDataSet *ds = DataSource->DataSet;
if (ds->State == dsBrowse) ds->Prior();
return true;
}

//---------------------------------------------------------------------------

bool __fastcall TDBGridM::DoMouseWheelDown
(TShiftState  Shift
,const Windows::TPoint& MousePos
)
{
if (!DataLink || !DataLink->Active) return true;

TDataSet *ds = DataSource->DataSet;
if (ds->State == dsBrowse) ds->Next();
return true;
}
olegenty
Отправлено: 20.09.2004, 15:06


Ветеран

Группа: Модератор
Сообщений: 2412



или не париться и поставить TDBGridEh. хорош, для русских бесплатен, события от колеса мыши обрабатывает.

написуя же наследник, добавлю к сказанному AVC следующее: есть 2 способа выноса обработчиков сообщений.
1. перекрытием WndProc
2. прописыванием макроса BEGIN_MESSAGE_MAP — END_MESSAGE_MAP

для общего развития можешь пописАть, но всё же я бы воспользовался DBGridEh (что и делаю).
Katame
Отправлено: 22.09.2004, 23:23


Не зарегистрирован







Огромное спасибо!

Вернуться в Работа с базами данных в C++Builder