Einzelnen Beitrag anzeigen

bogdan

Registriert seit: 15. Apr 2013
77 Beiträge
 
#9

AW: Mit Mausrad in TScrollBox scrollen

  Alt 18. Sep 2013, 10:31
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;

Ich habe eine Form1 + Panel1 als Parent. Dann öffne ich eine Form2 mit Scrollbox auf dem Form1.Panel1.Parent. Ab dann funktioniert der Code nicht mehr. Muss ich da noch über Findcomponent exakt den Control zuweisen?
  Mit Zitat antworten Zitat