Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

Как осуществить прокрутку в ScrollBox?   Найти похожие ветки 

 
Vasiliy   (2006-08-20 07:56) [0]

Приветствую Вас, мастера. Вот такой вопрос возник.
Имеется компонент ScrollBox на форме, Align=Alclient. В этом компоненте находится Timage в котором загружена картинка, превосходящая размеры Scrollbox, как минимум вдвое. Соответственно появились ползунки.
Я обратил внимание что при прокрутке ползунков изменились Left и Top компонента Image. Решил воспользоваться событием OnMouseWheel... чтобы их изменить, но что-то не работает, при ни на Image, ни на ScrollBox.
Подскажить пожалуйста, как осуществить прокрутку ScrollBox, крутя колесик мышки.

Заранее благодарю.


 
Мефисто   (2006-08-20 08:53) [1]

TScrollBox.HorzScrollBar
TScrollBox.VertScrollBar

TScrollBox.VertScrollBar.Position


 
vasiliy   (2006-08-21 06:06) [2]

>>>Мефисто   (20.08.06 08:53) [1]

TScrollBox.HorzScrollBar
TScrollBox.VertScrollBar

TScrollBox.VertScrollBar.Position

А на какой компонент событие движения колесика мышки накладывать, а что-то не получается (на события Scrollbox, Image не работает).

С уважением.


 
Мефисто   (2006-08-21 13:19) [3]

TForm.OnMouseWheel....
Begin
 TScrollBox.VertScrollBar.Position := TScrollBox.VertScrollBar.Position + WheelDelta;
end;


 
ffo ©   (2006-08-21 13:42) [4]


> Подскажить пожалуйста, как осуществить прокрутку ScrollBox,
>  крутя колесик мышки


Для этого напиши небольшой перехватчик событий прокрутки мыши.
Вот пример писанный мной для скролов формы:
public
{ Public declarations }
procedure ffoHOOK(var Msg:TMsg;var Handled:Boolean);

//   ...

procedure Tfm_TP22500.FormCreate(Sender: TObject);
begin
Application.OnMessage:=ffoHOOK;
end;

//...

procedure TForm1.ffoHOOK(var Msg:TMsg;var Handled:Boolean);
begin
case Msg.message of
wm_MOUSEWHEEL://Крутнули кнопку мыши
               if Msg.wParam > 0 then VertScrollBar.Position:=VertScrollBar.Position+10
               else VertScrollBar.Position:=VertScrollBar.Position-10;

   wm_KEYDOWN://Сообщение от клавиатуры
               case Msg.wParam of
                vk_Left: HorzScrollBar.Position:=HorzScrollBar.Position-10;//смещение влево
                vk_Right:HorzScrollBar.Position:=HorzScrollBar.Position+10;//смещение вправо
                vk_Up:   VertScrollBar.Position:=VertScrollBar.Position-10;//смещение вверх
                vk_Down: VertScrollBar.Position:=VertScrollBar.Position+10;//смещение вниз
               end;//case

end;//case

//...
//Отключи
Form1.Repaint;
Handled:=true;

end;

Как видишь тут и кнопки управления курсором перехвачены(крутишь ср кн мыши или жмешь на кнопки перемещения курсора, а двигается скрол куда теде надо)


 
ffo ©   (2006-08-21 13:46) [5]


> Tfm_TP22500


Извини. Случайно оставил Tfm_TP22500 из своего приера, не обращай внимания.


 
Vasiliy   (2006-08-22 06:07) [6]

Спасибо, сегодня же поэксперементирую.



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

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

Наверх




Память: 0.48 MB
Время: 0.026 c
2-1155895482
иван8511
2006-08-18 14:04
2006.09.10
Как сделать папку активной?


2-1156168684
ян
2006-08-21 17:58
2006.09.10
вопрос по ApplicationEvents


15-1155117731
Аноним
2006-08-09 14:02
2006.09.10
Есть ли в Windows возможность использовать несколько мышей?


2-1156263776
GunGarry
2006-08-22 20:22
2006.09.10
Заблокировать файл папку


2-1156172789
vain
2006-08-21 19:06
2006.09.10
gif и canvas