Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

ScrollBox


Dy1   (26.09.11 12:47

помогите пожалуйста прокрутить ScrollBox колёсиком.
1)
function TForm1.KOLApplet1Message(var Msg: TMsg; var Rslt: Integer): Boolean;
begin
 Result := False;
 if(SB.GetWindowHandle = Msg.hwnd)AND(Msg.message = WM_MOUSEWHEEL)then
 begin
   if Msg.wParam > 32767 then
     SB.Perform( ???

2) нередко ScrollBox после прокрутки не отрисовывает дочерние контролы - они становятся полосатыми и почти невидимыми. Что можно сделать?
В основном это чекбоксы


Дмитрий К ©   (26.09.11 14:32[1]

1) WM_VSCROLL. Только странно, самому скролбоксу сообщения о прокрутке колесика не приходят что ли? И если апплет не будет совпадать с формой, до него ведь сообщение не дойдет.
2) Попробуй подложить панельку.


QAZ   (26.09.11 14:33[2]

2) может для начала делать это в onMessage ScrollBox ане Applet?


QAZ   (26.09.11 14:35[3]

и вообще есть onmousewhell


Dy1   (26.09.11 16:51[4]

слать WM_VSCROLL ? А параметры какие?
Не приходят. Как было это дело, так в КОЛ и осталось.
Версия КОЛа фз, но вроде было максимум одно обновление пока я тут не появлялся.

QAZ, попробую.
Вот onmousewheel и не работает.


Дмитрий К ©   (26.09.11 18:16[5]

Колесико "к себе" - SB.Perform(WM_VSCROLL, SB_LINEDOWN, 0), "от себя" - SB.Perform(WM_VSCROLL, SB_LINEUP, 0)


QAZ   (26.09.11 20:32[6]


> Вот onmousewheel и не работает.

оно не неработает,а просто нужно делать так

if Integer( Mouse.Shift ) < 0 then //колесо вниз
if Integer( Mouse.Shift ) > 0 then //колесо вверх


boojum ©   (21.11.11 14:38[7]


> Только странно, самому скролбоксу сообщения о прокрутке
> колесика не приходят что ли?

У меня именно в этом проблема:(
В скролбоксе расположен  DBGrid, точнее DBGridEh, но, думаю, это не принципиально. Форма(фрейм) и лежащий на нем скролбокс порекрасно получают сообщения WM_MOUSEWHEEL? но... только до тех пор, пока как-либо строка грида не получит фокус. После этого прокрутки мышью скролбокса невозможна, пока не передашь фокус какому-нибудь другому контролу. Вопрос: как забрать  WM_MOUSEWHEEL у жадного грида (он ему все равно не нужен)? (гыыы... кстати по-английский Greed = жадный) :)


Vladimir Kladov ©   (21.11.11 16:15[8]

Пробовали ловить в Applet.OnMessage ?
Аналогичные проблемы с колесиком и в VCL, и .net.


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо