Delphi-Quellcode:
{ Public declarations der Form }
ScrollActiv: Boolean;
ScrollOld: TPoint;
procedure Tfmain.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ScrollActiv := Button = mbLeft; // oder if Button = mbLeft then ScrollActiv := True;
ScrollOld.X := X;
ScrollOld.Y := Y;
end;
procedure Tfmain.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ScrollActiv then begin
//SetCaptureControl(nil);
StringGrid1.ScrollBy(X - ScrollOld.X, Y - ScrollOld.Y);
ScrollOld.X := X;
ScrollOld.Y := Y;
end;
end;
procedure Tfmain.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ScrollActiv := False; // oder if Button = mbLeft then ScrollActiv := False;
end;
Aber bezüglich des ScrollBy müßte man nochmal nachschauen, ob es da was besseres gibt, welches wirklich/richtig funktioniert.