Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.26;
Скачать: 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 вся ветка

Текущий архив: 2007.08.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
2-1186210510
Poroshm
2007-08-04 10:55
2007.08.26
как создать второе окно?


2-1186211852
Alex7
2007-08-04 11:17
2007.08.26
Сортировка данных в TADODataSet


2-1185619754
Draught
2007-07-28 14:49
2007.08.26
Убрать scrollbar у DBGrid


8-1163533089
PAN
2006-11-14 22:38
2007.08.26
Быстрая последовательная загрузка и показ изображений


2-1184414949
MRAk
2007-07-14 16:09
2007.08.26
Ужасно ли использование таймера