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