Einzelnen Beitrag anzeigen

etom291272

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

Re: Problem beim Scrollen mit Code durch Mausrad

  Alt 22. Feb 2005, 20:36
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
  Mit Zitat antworten Zitat