"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);

Вопрос: что не так?
Проект прилагаю

Вложения:
TDBGridEhTest.rar [110.49 KiB]
Скачиваний: 95
error1.jpg
error1.jpg [ 75.49 KiB | Просмотров: 1741 ]

Автор:  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/