Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему в ScrollBox не работает Скрол мыши 
:(
    Опции темы
Teran
  Дата 13.4.2006, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Подскажите пожалуйта как сделать так чтобы скрол на мышке мог работать в обычном ScrollBox-е ?
smile smile smile


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
Fin
Дата 13.4.2006, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: нет
Всего: 10



Перехватываеш сообшение WM_MOUSEWHEEL и уже в обработчике сообшения меняеш позицию Скролов.


--------------------
Пролетал мимо.
PM MAIL   Вверх
Rennigth
Дата 13.4.2006, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Что-то на подобие:
Код

procedure TScrollBoxEx.WndProc(var Message: TMessage);
const
  C_RotateWheel: Integer = 120;
  C_WheelStep: Integer = 10;
begin
  if message.Msg = WM_MOUSEWHEEL then
  begin
    if Assigned(VScrollBar) and VScrollBar.Visible then
    begin
      if HIWORD(Message.wParam) = C_RotateWheel then
        VScrollBar.Position := VScrollBar.Position - C_WheelStep;
      if HIWORD(Message.wParam) = High(HIWORD(Message.wParam)) + 1 - C_RotateWheel then
        VScrollBar.Position := VScrollBar.Position + C_WheelStep;
    end;
  end;
  inherited;
end;




--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Poseidon
Дата 13.4.2006, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Мдя. А что процедуры onMouseWheelDown и OnMouseWheelUp уже не модно использовать?


Код

procedure TForm1.ScrollBox1MouseWheelDown(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
with ScrollBox1.VertScrollBar do Position:= Position + 5
end;

procedure TForm1.ScrollBox1MouseWheelUp(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
with ScrollBox1.VertScrollBar do Position:= Position - 5
end;



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1083 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.