Folgendes sollte bei gedrückter Shift-Taste ein Drehen des Kopfes nach links und rechts ermöglichen - bis zur Tischkante...
Delphi-Quellcode:
private
FLast: TPoint; // speichert die letzte Mausposition
Beim Form das KeyPreview auf true stellen.
im FormKeyDown:
Delphi-Quellcode:
if Key = VK_SHIFT then begin
FLast := GLSceneViewer1.ScreenToClient(Mouse.CursorPos);
GLSceneViewer1.Cursor := -1;
end;
im FormKeyUp:
Delphi-Quellcode:
if Key = VK_SHIFT then begin
GLSceneViewer1.Cursor := crDefault;
end;
und im SceneViewerMouseMove:
Delphi-Quellcode:
if ssShift in Shift then begin
GLDummyCube1.Turn(X - FLast.X);
FLast := Point(X, Y);
if Abs(X - GLSceneViewer1.Width div 2) > 10 then begin
FLast := Point(GLSceneViewer1.Width div 2, GLSceneViewer1.Height div 2);
Mouse.CursorPos := GLSceneViewer1.ClientToScreen(FLast);
end;
end;