OnMouseWheel не запускается с компонентом THTMLPort в Lazarus

Я использую Lazarus с THTMLPort для рендеринга HTML-кода в моей программе. OnMouseEvent для окна HTMLViewer не запускается прокрутка мышью. Подобную проблему я обнаружил в похожем, но не похожем проекте для Delphi, который называется THTMLViewer. На этой странице этого проекта разработчик публикует изменения в коде модуля htmlviewer.pas, чтобы включить OnMouseWheel событие для огня. Я попытался внести эти изменения в код в соответствующем модуле htmlviewer.pas для THTMLPort, но это не сработало. (Как примечание, я попытался просто использовать THTMLViewer для своей программы вместо этого, но, поскольку он все еще находится в разработке для использования в Lazarus, он не будет работать). Вот единственный код в блоке, который упоминает колесико мыши, особенно OnMouseWheel событие:

{$ifdef ver120_plus}
property OnMouseWheel;
{$endif}

...

{----------------ThtmlViewer.HTMLMouseWheel}
{$ifdef ver120_plus}
procedure ThtmlViewer.HTMLMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint);
var
  Lines: integer;
begin
Lines := Mouse.WheelScrollLines;
if Lines > 0 then
  if WheelDelta > 0 then
    VScrollBarPosition := VScrollBarPosition - (Lines * 16)
  else
    VScrollBarPosition := VScrollBarPosition + (Lines * 16)
else VScrollBarPosition := VScrollBarPosition - WheelDelta div 2;
end;

function ThtmlViewer.DoMouseWheel(Shift: TShiftState; WheelDelta: Integer;
                                         MousePos: TPoint): Boolean;
begin
result:= inherited DoMouseWheel(shift, wheelDelta, mousePos);
if not result and not (htNoWheelMouse in htOptions) then
  begin
  HTMLMouseWheel(Self, Shift, WheelDelta, MousePos);
  Result := True;
  end;
end;
{$endif}

Итак, может ли кто-нибудь помочь в получении THTMLPort OnMouseWheel событие работает? Я новичок в Lazarus, поэтому пока не могу найти свой путь. Спасибо за любую помощь.

0 ответов

Другие вопросы по тегам