3

THTMLPortでLazarus を使用して、プログラムで HTML コードをレンダリングしています。OnMouseEventHTMLViewer ウィンドウの は、マウスのスクロール時に起動しません。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 に慣れていないので、まだ完全に自分の道を見つけることができません。助けてくれてありがとう。

4

0 に答える 0