Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#2

AW: Mit Mausrad in TScrollBox scrollen

  Alt 18. Sep 2012, 16:43
Schau doch mal nach, was PScrollBox.ClientRect und AScrollBox.ClientRect jeweils zurückgeben - dann sollte es dir klar werden, was da schief geht.

Aber warum so kompliziert?


Delphi-Quellcode:
procedure TForm162.FormMouseWheel(Sender: TObject; Shift: TShiftState;
    WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
var
  vsb: TControlScrollbar;
  ctrl: TControl;
begin
  ctrl := ControlAtPos(ScreenToClient(MousePos), false, true, true);
  while (ctrl <> nil) and not (ctrl is TScrollBox) do begin
    ctrl := ctrl.Parent;
  end;
  if ctrl is TScrollBox then begin
    vsb := TScrollBox(ctrl).VertScrollBar;
    vsb.Position := vsb.Position - Sign(WheelDelta)*vsb.Increment;
    Handled := true;
  end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat