Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
ВнизOnMouseWheel в TScrollBox Найти похожие ветки
← →
Provodnick (2004-06-22 13:28) [0]Здравствуйте, я пытаюсь обработать событие OnMouseWhell в ScrollBoxe на форме, но ничего не происходит. Удается обработать лишь аналогичное событие формы. Что делать? В чем проблема?
← →
PVOzerski © (2004-06-22 13:33) [1]А ScrollBox при этом активен?
← →
Provodnick (2004-06-22 13:49) [2]Что Вы под этим подразумеваете? Находится ли он в фокусе ввода? Полагаю, что да, ведь он единственный компонент на форме(тестовой форме).
← →
Andy BitOff © (2004-06-22 14:00) [3]Надо принудительно передать ему фокус, например при OnShow
← →
Andy BitOff © (2004-06-22 14:00) [4]Надо принудительно передать ему фокус, например при OnShow
← →
GuAV © (2004-06-22 14:01) [5]
> Полагаю, что да
а TabStop случайно не False? если False, то предположение неверно.
← →
Andy BitOff © (2004-06-22 14:03) [6]Offtop: Прошу прощения за повтор. 500 ошибка выскачила и повторил.
← →
Provodnick (2004-06-22 14:26) [7]TabStop действоительно был в False. Недоглядел. Но теперь событие вызывается даже если ScrollBox не находится в фокусе... Хотелось бы, чтоб этого не было.
← →
Rem (2004-06-22 15:35) [8]"не находится в фокусе" - что имеется в виду? Не наведена мышь или фокус не на форме?
← →
GuAV © (2004-06-22 16:17) [9]
> Но теперь событие вызывается даже если ScrollBox не находится
> в фокусе...
Ну, если на тестовой форме только ScrollBox, а остальные контролы в нём, то он не потеряет фокус.
← →
Provodnick (2004-06-22 18:36) [10]Нет, я добавил кнопок всяких. Если фокус на другом контроле и мышь вне ScrollBox`a, то все равно срабатывает его событие. Что же делать?
← →
GrayFace © (2004-06-22 19:09) [11]Offtop: Лично я за повтор простил. Теперь проси прощения за Offtop.
← →
Andy BitOff © (2004-06-22 22:59) [12]
Procedure PardonOfOffTop;
begin
SendMessage("Прошу прощения за OffTop");
end;
Procedure WaitPardon;
begin
if not Pardon then PardonOfOffTop;
end;
← →
GuAV © (2004-06-23 00:15) [13]
> Нет, я добавил кнопок всяких. Если фокус на другом контроле
> и мышь вне ScrollBox`a, то все равно срабатывает его событие.
> Что же делать?
Проведи такой эксперимент ScrollBox и memo кинь в разные углы формы. назначь форме и скролбоксу такой onmousewheel:procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
Memo1.Lines.Add(TComponent(Sender).Name);
end;
Кликни в сколбоксе и покрути колесо результат:
ScrollBox1
Form1
ScrollBox1
Form1
ScrollBox1
Form1
ScrollBox1
Form1
ScrollBox1
Form1
ScrollBox1
Form1
Кликни в мемо и покрути колесо результат:
Form1
Form1
Form1
Form1
...и ищи ошибку у себя.
← →
AlexSV (2004-06-23 10:39) [14]Provodnick (22.06.04 14:26) [7]
TabStop действоительно был в False. Недоглядел
и не надо, это не влияет на проблему
в событии OnMouseWhell в ScrollBoxe вставь
...
with TScrollBox(Sender) do
if PtInRect(ClientRect, ScreenToClient(MousePos)) then begin
// Выполняем действия
end;
...
← →
GuAV © (2004-06-23 11:53) [15]AlexSV (23.06.04 10:39) [14]
Это тебе не надо. твой код выполнит действия, если и курсор будет в скролбоксе и фокус там же. Т.е. если у него не будет фокуса, то действия выполнены не будут, даже если мыша на нём.
← →
AlexSV (2004-06-23 12:17) [16]> GuAV © (23.06.04 11:53) [15]
У меня работает D5
курсор скролбоксе а фокус нет
← →
GuAV © (2004-06-23 12:21) [17]AlexSV (23.06.04 12:17) [16]
Уже начинаешь надоедать ;) кинь в один угол скролбокс а в другой edit, кликни по edit, наводи курсор и крути - работать не будет!
> У меня работает D5
Не аргумент ;)
← →
AlexSV (2004-06-23 12:52) [18]> GuAV © (23.06.04 12:21) [17]
>... кликни по edit, наводи курсор и крути ...
кликни по скролбоксу, наведи на edit и крути
← →
Provodnick (2004-06-23 14:34) [19]Во-первых, извеняюсь, что заварил всю кашу и свалил неизвестно куда - у нас инет вырубили только сегодня заработал. Во-вторых, пример с PtInRect(ClientRect, ScreenToClient(MousePos)) только в обработчике формы, а не ScrollBox`а - это то, что нужно!!! Отдельное спасибо AlexSV и всем всем всем!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.053 c