Hy Leute
Ich verwende auf einer kleinen Form ein Panel darauf befindet sich eine Scrollbox. In dieser Scrollbox befindet sich ein TmcmImageCrtl (ein bessere TImageComponente). Mit folgendem Code erreiche ich das die Scrollbox wenn die Maus darüberfährt automatisch den Focus erhält
Delphi-Quellcode:
procedure TFmDokViewer.ImageCtrlVorschauMouseMove(Sender: TObject;
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;
wenn nun der Benutzer das Mausrad über dieser Scrollbox bewegt lasse ich mit folgendem Code das Bild
scrollen
Delphi-Quellcode:
procedure TFmDokViewer.ScrollReUntenMouseWheelDown(Sender: TObject;
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
ScrollReUnten.ScrollBy(0,-30);
end;
procedure TFmDokViewer.ScrollReUntenMouseWheelUp(Sender: TObject;
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
ScrollReUnten.ScrollBy(0,30);
end;
das scrollen funktioniert auch aber man kann das bild sowohl nach oben als auch nach unten aus der sichtscrollen (z.b.: Mausrad 5 mal nach oben gedreht und das Bild verschwindet nach Oben aus dem Sichtbereich der Scrollbox) ausserdem zeigen die Balken etwas falsches an die werden nur grösser und kleiner.
Wenn man mit der Maus mit dem Balken und nicht per Code verschiebt funktioniert es normal
Ich will aber das es mit dem Mausrad funktioniert aber nur in dem Bereich das das Bild innerhalb des Sichtbaren Bereiches bleibt.
Bin dankbar für jeden Tipp