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 |
|
Не зарегистрирован
|
Огромное спасибо! |
|