Einzelnen Beitrag anzeigen

etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#1

Problem beim Scrollen mit Code durch Mausrad: gelöst

  Alt 21. Feb 2005, 23:54
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
  Mit Zitat antworten Zitat