für alle interessierte meine Lösung dieses Problems
der untere code erlaubt es mit dem Mousewheel innerhalb des richtigen Bereiches vertikal zu scrollen und mit der linken und rechten Maustaste ein Mousewhell für das horizontale scrollen zu simulieren. Die scrollbalken verhalten sich in beiden Richtungen jetzt richtig
Achtung in der Scrollbox Property Autoscroll auf True in die beiden Scrollbars in der visible property auch auf true stellen sonst geht gar nichts.
Delphi-Quellcode:
//------------------------------------------------------------------------------
procedure TFmDokViewer.ImageCtrlVorschauMouseMove(Sender: TObject; //scrollbox focus setzen
Shift: TShiftState; X, Y: Integer);
var a:array[0..255] of char;
begin
if not ScrollReUnten.Focused then
begin
getwindowtext(GetActiveWindow, a, 256);
if a = BezBrowserFenster then ScrollReUnten.SetFocus;
end;
end;
//------------------------------------------------------------------------------
procedure TFmDokViewer.ScrollReUntenMouseWheelDown(Sender: TObject;
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
ScrollReUnten.VertScrollBar.Position:=ScrollReUnten.VertScrollBar.Position+10;
end;
procedure TFmDokViewer.ScrollReUntenMouseWheelUp(Sender: TObject;
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
ScrollReUnten.VertScrollBar.Position:=ScrollReUnten.VertScrollBar.Position-10;
end;
procedure TFmDokViewer.ImageCtrlVorschauMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
LetzteMausTaste:=Button;
TimHorScroll.Enabled:=True;
end;
procedure TFmDokViewer.TimHorScrollTimer(Sender: TObject);
begin
if LetzteMausTaste=mbLeft then ScrollReUnten.HorzScrollBar.Position:=ScrollReUnten.HorzScrollBar.Position-10;
if LetzteMausTaste=mbRight then ScrollReUnten.HorzScrollBar.Position:=ScrollReUnten.HorzScrollBar.Position+10;
end;
procedure TFmDokViewer.ImageCtrlVorschauMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
TimHorScroll.Enabled:=False;
LetzteMausTaste:=Unassigned;
end;
vielleicht erspart das jemandem stundenlanges suchen