Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Существует ли версия VirtualStringTree с событиями мыши OnMouseEnter и OnMouseLeave?

Delphi , Синтаксис , Деревья

VirtualStringTree — это популярный компонент для отображения иерархических данных в Delphi. Однако, не все версии этого компонента поддерживают события мыши OnMouseEnter и OnMouseLeave. Эти события позволяют реагировать на движение мыши над элементом дерева без фактического щелчка.

Если вы используете версию VirtualStringTree, которая не поддерживает эти события, вы можете добавить их самостоятельно. Вот пример кода, который показывает, как это можно сделать:

TMyImprovedVirtualStringTree = class(TSomeVirtualStringTree)
private
  FOnMouseEnter: TNotifyEvent;
  FOnMouseLeave: TNotifyEvent;

  // Watch for MouseEnter and MouseLeave messages...
  procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
  procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
protected
  // Provide MouseEnter() and MouseLeave() methods
  // for descendent controls to override if needed.
  procedure MouseEnter; virtual;
  procedure MouseLeave; virtual;
published
  // Publish the events so they show in Delphi's object inspecter.
  property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
  property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;

implementation

{TMyImprovedVirtualStringTree}

procedure TMyImprovedVirtualStringTree.CMMouseEnter(var Message: TMessage);
begin
  inherited;
  MouseEnter;
end;

procedure TMyImprovedVirtualStringTree.CMMouseLeave(var Message: TMessage);
begin
  inherited;
  MouseLeave;
end;

procedure TMyImprovedVirtualStringTree.MouseEnter;
begin
  if Assigned(FOnMouseEnter) then
    FOnMouseEnter(Self);
end;

procedure TMyImprovedVirtualStringTree.MouseLeave;
begin
  if Assigned(FOnMouseLeave) then
    FOnMouseLeave(Self);
end;

В этом примере создается новый класс TMyImprovedVirtualStringTree, который наследуется от TSomeVirtualStringTree (замените TSomeVirtualStringTree на фактический класс вашего VirtualStringTree). В этом классе добавляются приватные переменные FOnMouseEnter и FOnMouseLeave, которые будут содержать обработчики событий.

Также добавляются два приватных метода CMMouseEnter и CMMouseLeave, которые обрабатывают сообщения CM_MOUSEENTER и CM_MOUSELEAVE соответственно. В этих методах вызывается метод MouseEnter или MouseLeave, которые, в свою очередь, вызывают соответствующие обработчики событий, если они назначены.

Наконец, добавляются публичные свойства OnMouseEnter и OnMouseLeave, которые позволяют назначать обработчики событий из кода или через форму.

Создано по материалам из источника по ссылке.

Существуют версии VirtualStringTree, которые поддерживают события мыши OnMouseEnter и OnMouseLeave, но не все. Если используемая версия не поддерживает эти события, их можно добавить самостоятельно с помощью доработки кода.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Деревья ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 11:05:16/0.0052039623260498/1