Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Скролл колесиком [D7, WinXP]


va ©   (2004-09-24 14:42:00) 

Господа! подскажите, как сделать чтобы TDBGrid делал нормальную прокрутку по колесику мышки


va   (2004-09-29 19:07:00) [1]

Большое спасибочки, все получилось.


PPasha   (2004-09-24 16:55:00) [2]

Если говорить про компонеты, то я переопределил два метода:

function TVAPCustomGrid.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
 Result := inherited DoMouseWheelDown(Shift, MousePos);
 if not Result then
   Perform(WM_VSCROLL, 1, 0);
end;

function TVAPCustomGrid.DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
 Result := inherited DoMouseWheelUp(Shift, MousePos);
 if not Result then
   Perform(WM_VSCROLL, 0, 0);
end;


Леван   (2004-09-24 16:23:00) [3]

Сброс на форма ApplicationEvents и напиши обработчик:

procedure TMEDF0.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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо