Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 19 апр 2024, 13:23

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Недостаток EhLib Controls в Lazarus
СообщениеДобавлено: 06 авг 2020, 03:51 
Не в сети

Зарегистрирован: 03 мар 2017, 07:12
Сообщений: 91
Здравствуйте.
С удивлением обнаружил, что у DBGridEh, DBMemoEh и д.р. отсутствуют события
OnMouseEnter,
OnMouseLeave,
OnMouseWheel
OnMouseWheelDown
OnMouseWheelUp

Надеюсь вы планируете, доработку в Lazarus


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Недостаток EhLib Controls в Lazarus
СообщениеДобавлено: 06 авг 2020, 04:04 
Не в сети

Зарегистрирован: 03 мар 2017, 07:12
Сообщений: 91
Пример
Добавление события OnMouseLeave
https://delphisources.ru/pages/faq/base ... leave.html


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Недостаток EhLib Controls в Lazarus
СообщениеДобавлено: 06 авг 2020, 04:48 
Не в сети

Зарегистрирован: 03 мар 2017, 07:12
Сообщений: 91
Т.к. в TControl уже все имеется, и если нет подводных камней, то всего-то нужно открыть модуль DBGridEh (можно в любом текущем проекте)
И там в TDBGridEh = class(TCustomDBGridEh)
прописать между
property OnMouseDown;
...
property OnMouseMove;

строки
property OnMouseEnter;
property OnMouseLeave;

И так для всех нужных компонент
После нужно сохранить модули и запустить Сервис -> Пересобрать Lazarus


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Недостаток EhLib Controls в Lazarus
СообщениеДобавлено: 07 авг 2020, 04:01 
Не в сети

Зарегистрирован: 03 мар 2017, 07:12
Сообщений: 91
ньюанс, может кому будет важно.
Компонент DBGridEh имеет не удаляемую на первый взгляд границу в 1 пиксель, которая остается даже если все бордюры отключены.
Эта граница в 1 пиксель играет с событием OnMouseLeave злую шутку.
Когда мышь наползает на эту линию, событие Оставлено у грида уже произошло, а вот событие Входа (onMouseEnter) у соседнего компонента еще не произошло.
Т.е. проблема в том, что получается граница как бы не принадлежит объекту.

Решается установкой (в дизайнере или программно)
DBGridEh.Border.ExtendedDraw := true
DBGridEh.Border.ExtendedDrawStored := true

Так граница убирается полностью


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB