Страница 1 из 1
колесо прокрутки
Добавлено: 29 дек 2005, 18:51
maelz
Как с помощью колёсика мышки прокручивать форму вверх, вниз. :evil:
Добавлено: 04 янв 2006, 11:51
Romeo
Путём обрабатывания нотификации WM_MOUSEWHEEL.
Re: колесо прокрутки
Добавлено: 04 янв 2006, 13:08
CyMKuH
maelz писал(а):Как с помощью колёсика мышки прокручивать форму вверх, вниз. :evil:
1) Надо поставить в свойствах формы KeyPreview:=true; - это если на форме имеются другие компоненты, и фокус нахадится на них...
2) Описать события:
procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
Form1.Top:=form1.Top-1; {Форма двигается вверх}
end;
procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
Form1.Top:=form1.Top+1; {Форма двигается вниз}
end;
Добавлено: 04 янв 2006, 17:52
maelz
Я имею в виду не перемещение самой формы вверх вниз, а перемещение содержимого формы.
[/b]
Добавлено: 05 янв 2006, 14:46
CyMKuH
maelz писал(а):Я имею в виду не перемещение самой формы вверх вниз, а перемещение содержимого формы.
[/b]
Если ты хочешь, чтобы все без исключения компоненты перемещались по форме, то тогда тебе надо в этих же обработчиках событий написать:
procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
компонент1.Top:=компонент1.Top-1; {компонент1 двигается вверх}
компонент2.Top:=компонент2.Top-1; {компонент2 двигается вверх}
end;
procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
компонент2.Top:=компонент2.Top+1; {компонент2 двигается вниз}
компонент1.Top:=компонент1.Top+1; {компонент1 двигается вниз}
end;
Компонент1 и Компонент2 могут быть например Button1 и Panel1
Добавлено: 15 янв 2006, 01:47
Naeel Maqsudov
Нет, нет. Так не надо делать!
Надо у формы AutoScroll поставить в False.
Затем в VertScrollBar.Range поставить логическую (прокручиваемую) высоту формы.
(VertScrollBar.Tracking можно = true)
Все. Этого достаточно. Содержимое формы будет прокручиваться.
Теперь осталось только связать колесико с вертикальным скроллбаром формы:
т.е. не
Form1.Top:=form1.Top-1; {Форма двигается вверх}
(как было выше)
а
Form1.VertScrollBar.Position:=form1.VertScrollBar.Position-1; {Форма двигается вверх}