我正在使用带有THTMLPort的 Lazarus在我的程序中呈现一些 html 代码。HTMLViewerOnMouseEvent
窗口不会在鼠标滚动时触发。我在一个名为THTMLViewer的 Delphi 类似但不相同的项目中发现了这样的问题。在该项目的此页面上,开发人员发布了 htmlviewer.pas 单元代码中的更改,以使OnMouseWheel
事件能够触发。我试图对 THTMLPort 的相应 htmlviewer.pas 单元中的代码进行这些更改,但它不起作用。(作为旁注,我已经尝试在我的程序中简单地使用 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}
那么,任何人都可以帮助 THTMLPortOnMouseWheel
事件正常工作吗?我对 Lazarus 有点陌生,所以我还不能完美地找到自己的出路。谢谢你的帮助。