|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Запретить прокрутку колесиком мыши
На форме есть trackbar и combobox? Можно каким нибудь образом запретить им изменять свои значения, когда прокручивается колесико мыши? Например не давать им фокуса, даже когда по ним щелкаешь.
|
#2
|
|||
|
|||
Ответ поздновато, но может кому пригодится.
Убить прокрутку колеса в комбобоксе можно, но хитрым способом. Создаете класс-"обертку" от комбобокса: Код:
THackComboBox = class(TComboBox) private procedure CMMouseWheel(var Message: TCMMouseWheel); message CM_MOUSEWHEEL; end; implementation procedure THackComboBox.CMMouseWheel(var Message: TCMMouseWheel); begin // Убиваем прокрутку колеса мыши для комбобокса // (т.е., никакие сообщение от колеса не обрабатывается) end; Код:
procedure TFrmMain.FormCreate(Sender: TObject); begin PPointer(ComboBox1)^ := THackComboBox; end |
Этот пользователь сказал Спасибо san-46 за это полезное сообщение: | ||
SpectraL (29.03.2015)
|
#3
|
|||
|
|||
... а зачем нужна пустая процедура перед тем как совершается прокрутка?
|
#4
|
|||
|
|||
В эту "пустую" процедуру приходит сообщение от колеса. В нее можно записать дополнительну обработку (если требуется). Например, если записать метод inherited, то обработка событий от колеса будет штатная. Пустая процедуа ничего не делает, а именно это и требуется по условию задачи (написано же ясно: "никакие сообщения от колеса не обрабатываются.") - комбобокс не будет реагировать на события от колеса.
Не забывайте делать резервные копии |
#5
|
|||
|
|||
Да дело в том что он какраз-таки реагирует ..
Процедурка вроде, как я Лично понял конечно, срабатывает когда окном программы забирается кручение колеса и переводится на компонент, который focused - т.е. срабатывает комбо именно на том механизме, про который вроде в этом коде, опять же по моему, ничего нет .... Последний раз редактировалось 095, 02.12.2008 в 16:57. |
#6
|
|||
|
|||
Запрещает, а точнее "переворачивает" прокрутку колеса, исходящюю от принятых messages формы - вотэто:
Message.Result := -1; Седня цел день искал сам эту батву, то на угад то по форумам, запарилсо .. Зато случайно изучил делфи и спецификацию классов Спасибо за наводку в вашей теме |