Вниз
Скачать: CL | DM;

плавный скроллинг TScrollBox   Найти похожие ветки 

← →
click   (2007-07-30 12:58) [0]

в основной по непонятной причине ветку закрыли, попробую здесь, копи - пастю от сюда http://delphimaster.net/view/1-1185652576/

Пол дня сижу с этой проблемой... (теперь уже куда дольше)голова уже не варит совсем!
Вобщем нужно чтобы мой скролбокс плавно прокручивался при вращении над ним колесика. Пробовал естественно MouseWheel, пробовал отлавливать WM_MOUSEWHEEL все это до моего "бокса" не доходит пробовал также ловить WM_HSCROLL и WM_VSCROLL - это доходит но как выянилось не то что нужно.... Пытался также отправлять ему
sendmessage(myhandle,EM_SCROLL,SB_LINEDOWN он тоже не реагирует зараза...
Всеми желаемыми требованиями обладает TMemo, он и прокручивается отлично и при нажатии колеса появляется типичная картинка после чего можно перемещаться просто движениями мыши.
Просмотрел обе ветки в генофонде (предположим вправо вверх - ветвь наследников от TControl в сторону Мемо, а в лево вверх уходят предки скролбокса) так и там во всех наследниках не нашел ничего особенного что могло вызвать такую разницу в реакции на колесо... единственное что нарыл это разница в CreateParams на уровне  TScrollingWinControl. Пробовал и его переписать наподобие "мемовского" - это тоже ничего не дало...
Вобщем понимаю что ответ на поверхности но соображалка уже не работает... если есть у кого дельный совет - дайти плиз.. я сдаюсь! ))


← →
Kerk ©   (2007-07-30 15:11) [1]

Посмотри как работает событие OnMouseWheel


← →
Yanis ©   (2007-07-30 16:53) [2]


> Пробовал естественно MouseWheel, пробовал отлавливать WM_MOUSEWHEEL
> все это до моего "бокса" не доходит пробовал также ловить
> WM_HSCROLL и WM_VSCROLL - это доходит но как выянилось не
> то что нужно.... Пытался также отправлять ему

Можно пояснить. Ещё лучше было бы написать код.
Я так понял весь вопрос заключается в
> чтобы мой скролбокс плавно прокручивался при вращении над
> ним колесика

?


← →
click   (2007-07-31 10:29) [3]


> Yanis ©   (30.07.07 16:53) [2]

>Я так понял весь вопрос заключается в том чтобы мой скролбокс плавно
> прокручивался при вращении над  ним колесика?


так точно!!! ;-)


← →
click   (2007-07-31 10:34) [4]


> Kerk ©   (30.07.07 15:11) [1]
> Посмотри как работает событие OnMouseWheel


я смотрел... более того у скроллбокса оно и без меня реализовано!
проблема в том что это событие не наступает ((( как ни крути колесо...


← →
Пробегал тут   (2007-07-31 14:03) [5]

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
var
 ActiveControl: TControl;
 Direction, CurPosX, CurPosY: SmallInt;
begin
 if Msg.message = WM_MOUSEWHEEL then
 begin
   CurPosX := LoWord(Msg.lParam);
   CurPosY := HiWord(Msg.lParam);
   ActiveControl := FindDragTarget(Point(CurPosX,CurPosY), True);
   if ActiveControl is TScrollBox then
   begin
     Direction := HiWord(Msg.wParam);
     with ScrollBox1.VertScrollBar do
     begin
       if Direction > 0 then
         Position := Position + 10;
       if Direction < 0 then
         Position := Position - 10;
     end;
   end;
   Handled := False;
 end;
end;


← →
click   (2007-07-31 16:07) [6]

>>Пробегал тут   (31.07.07 14:03) [5]

спасибо большое! обязательно попробую щас на работе негде)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
2-1186130249
Юра
2007-08-03 12:37
2007.08.26
Клавиатура


1-1181811381
Dust
2007-06-14 12:56
2007.08.26
отладка Dll в D7


2-1185554076
master_asasin
2007-07-27 20:34
2007.08.26
ImageList - добавление картинок в RunTime


15-1185940922
IMHO
2007-08-01 08:02
2007.08.26
Бухгалтера vs. программисты


15-1185793624
VRSB
2007-07-30 15:07
2007.08.26
обработка условий




   Наверх