"EhLib.Com" https://forum.ehlib.com/ru/ |
|
Скроллинг колесом мыши https://forum.ehlib.com/ru/viewtopic.php?f=4&t=2861 |
Страница 1 из 1 |
Автор: | S_Gur [ 18 сен 2019, 09:41 ] |
Заголовок сообщения: | Скроллинг колесом мыши |
Всем доброго времени суток. Никто не в курсе, возможно ли организовать перемещение по записям, используя колесо мыши, средствами EhLib? |
Автор: | aush [ 18 сен 2019, 10:23 ] |
Заголовок сообщения: | Re: Скроллинг колесом мыши |
В DBGridEh? Так скроллится за милую душу же. |
Автор: | S_Gur [ 18 сен 2019, 12:16 ] |
Заголовок сообщения: | Re: Скроллинг колесом мыши |
aush писал(а): В DBGridEh? Так скроллится за милую душу же. У меня почему-то нет... Только что склепал самый примитивный пример - без единой строчки кода кроме открытия и закрытия датасета. Скроллинг не работает. Могу прислать пример. Можно уточнить вопрос: в каких случаях скроллинг может отрубаться? P. S. После серии экспериментов я понял, в чем проблема. EhGrid мышью скроллирует набор данных, если он не помещается на одну видимую страницу, при этом оставляет текущую запись неизменной. Мне же надо, чтобы мышка эмулировала клавиши "вверх" и "вниз", перемещаясь на следующую или предыдущую запись. Проблема в том, что в гриде нет события, возникающего при вращении колеса мышки, поэтому я не знаю, как съэмулировать такое поведение, потому как фокусированный на форме грид ловит и перекрывает обработку колеса мыши на форме. Есть возможность хотя бы отключить обработку колеса мыши в гриде, чтобы отрабатывали события формы? |
Автор: | EhLibSupport [ 18 сен 2019, 21:04 ] |
Заголовок сообщения: | Re: Скроллинг колесом мыши |
Добрый день. Если грид подключен к MemTableEh, то колесо мыши прокручивает содержимое грида вместо перемещения по записям. Есть возможность отключить эту возможность для всех гридов проекта. Для этого надо установить глобальное свойтво Код: DBGridEhCenter.TryUseViewScroll := False;
|
Автор: | S_Gur [ 19 сен 2019, 03:37 ] |
Заголовок сообщения: | Re: Скроллинг колесом мыши |
Спасибо, это именно то, что нужно. Вопрос закрыт |
Автор: | as2714 [ 03 окт 2019, 14:02 ] | |||
Заголовок сообщения: | Re: Скроллинг колесом мыши | |||
День добрый. Delphi XE5. Пробовал на EhLib.VCL 9.4 Build 9.4.016 и на EhLib.VCL 9.4 Build 9.4.017 включать Код: DBGridEhCenter.TryUseViewScroll := False; Для теста сделал проект: форма, TDBGridEh, TMemTableEh, TDataSource. При старте создаю поля в TMemTableEh, наполняю данными. В событии DrawColumnCell стоит код для разрисовки колонок: Код: procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); var FN : string; begin with (Sender as TDBGridEh) do begin FN := Column.FieldName; if (FN = 'P2') or (FN = 'P3') then begin Canvas.Brush.Color := clBtnFace; Canvas.Font.Color := clBlack; end; end; TDBGridEh(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State); end; При попытки скролировать колесом мыши вываливается ошибка: [img]error1.jpg[/img] Далее клацая по окну с ошибкой вываливаются другие цифры на ней. Закоментарив код в DrawColumnCell , ошибок при прокрутке колесом мыши нет. Поставив точку останова выяснил - ошибка происходит на строке TDBGridEh(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State); Вопрос: что не так? Проект прилагаю
|
Автор: | aush [ 03 окт 2019, 14:35 ] |
Заголовок сообщения: | Re: Скроллинг колесом мыши |
А такую разрисовку не проще в OnGetCellParams засунуть? |
Автор: | as2714 [ 03 окт 2019, 14:56 ] |
Заголовок сообщения: | Re: Скроллинг колесом мыши |
aush писал(а): А такую разрисовку не проще в OnGetCellParams засунуть? Приветствую. Ну тут вопрос не про разрисовку, а то что при установке глобального свойства DBGridEhCenter.TryUseViewScroll := False; в обработчике DrawColumnCell вываливается в ошибку на строке TDBGridEh(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State); Если не трогать это глобальное свойство, то все нормально, но тогда не будет премещения по записям через колесо мыши ))) Таки хочется, чтобы все работало ))) |
Автор: | as2714 [ 18 окт 2019, 21:51 ] |
Заголовок сообщения: | Re: Скроллинг колесом мыши |
Товарищи разработчики, удалось воспроизвести ошибку? С уважением, Александр. |
Автор: | EhLibSupport [ 19 окт 2019, 01:40 ] |
Заголовок сообщения: | Re: Скроллинг колесом мыши |
Добрый день. Да, удалось воспроизвести и исправить. Проверьте, пожалуйста, в сборке EhLib 9.4 Build 9.4.018. |
Автор: | as2714 [ 22 окт 2019, 09:33 ] |
Заголовок сообщения: | Re: Скроллинг колесом мыши |
EhLibSupport писал(а): Добрый день. Да, удалось воспроизвести и исправить. Проверьте, пожалуйста, в сборке EhLib 9.4 Build 9.4.018. Да, все работает! Спасибо! |
Страница 1 из 1 | Часовой пояс: UTC |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |