Hey

I didn't try to make it work, but try to make this:

[pascal]
procedure TForm1.glSceneViewerMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
const
koef = 0.5;
begin
if Shift<>[] then begin
if ssLeft in Shift then
begin
GLCamera1.MoveAroundTarget((my - y) * koef, (mx - x) * koef);
GLLightSource1.MoveObjectAround(
GLCamera1, (my - y) * koef, (mx - x) * koef);
GLLightSource2.MoveObjectAround(
GLCamera1, (my - y) * koef, (mx - x) * koef);
end
else
GLCamera1.RotateTarget(my - y, mx - x);
mx := x;
my := y;
end;
end;
[/pascal]

HTH,
Br@iner.[/pascal]