Einzelnen Beitrag anzeigen

Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

GLScene auch bei MouseEvents rendern.

  Alt 21. Aug 2006, 02:06
Morgen.

Ich hab grad ein Problem.

Ich will die Ansicht in einem TGLScene per Maus drücken, halten und ziehen drehen.

Momentan mache ich das so:

Delphi-Quellcode:
procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
startpos.X:=X;
startpos.Y:=Y;
Screen.Cursor:=crSizeAll;
end;

procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then
begin
glsceneviewer1.Camera.RotateAbsolute(Y-startpos.Y, X-startpos.X, 0);
startpos.X:=X;
startpos.Y:=Y;
mouse.cursorpos:=
  glsceneviewer1.clienttoscreen(Point(Width div 2, Height div 2));
end;
end;

procedure TForm1.GLSceneViewer1MouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Screen.Cursor:=crDefault;
end;
Das TGLScene wird im OnProgress eines cadencers gerendert.

Das Problem bei der Sache: Solange ich die Maustaste gedrückt halte und ziehe, wird die Szene nicht neu gerendert, erst wenn ich die Maustaste wieder loslasse.

Was kann ich dagegen tun?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat