Einzelnen Beitrag anzeigen

stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#15

AW: Mit Mausrad in TScrollBox scrollen

  Alt 27. Dez 2017, 14:30
Viele Jahre später ....

ich habe gerade das gleiche Problem.

Ich habe eine TScrollbox und darauf ein TImage welches über die ganze Scrollbox gezogen wird.
Ich habe darin ein Bild was genauso breit wie die Scrollbox, aber höher als die Scrollbox ist.

Ich würde nun ebenfalls gern mit der Maus darin hoch/runter scrollen. Aber ich bekomme das Event nicht abgefangen.
Weder auf der Form, noch in der Scrollbox.

Leider hat TImage kein Event dazu.

Edit : Ok hab es hinbekommen, aber anders als hier beschrieben

Code:
procedure Tmyapp.FormMouseWheelDown(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
var vsb    : TControlScrollbar;
    lp,mp  : TPoint;
    mr     : TRect;
begin
    GetCursorPos(mp);
    lp := Scrollbox1.ClientToScreen(Point(0,0));
    mr := Rect(lp,Point(lp.x+scrollbox1.width,lp.y+scrollbox1.Height));
    if PtInRect(mr, mp) then begin
        vsb            := Scrollbox1.VertScrollBar;
        vsb.Position   := vsb.Position + vsb.Increment;
        Handled        := true;
        log.lines.add('Scrollrad Form down');
    end;
end;
boundrect hat gar nicht funktioniert, weil boundrect mir 0,0 angab weil die Scrollbox auf einem Panel saß. D.h ich musste erst einmal die Punkte auf dem Screen ermitteln. und onMouseWheel reagiert bei mir gar nicht.

Sorry fürs pushen

Guten Rutsch allen.

Geändert von stalkingwolf (27. Dez 2017 um 15:37 Uhr)
  Mit Zitat antworten Zitat