Autor Beitrag
FatalError
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64

WIN ME
D6 Pers
BeitragVerfasst: Fr 11.06.04 21:49 
Hi,

für den Informatik-Unterricht schreibe ich derzeit eine Programm, mit dem man sich frei in einem dreidimensionalen Raum bewegen kann (allerdings ohne Texturen), d.h. man kann z.B. einen Würfel von allen Seiten betrachten, ihn umkreisen o.ä.. Das Grafik"maschienchen" selbst war kein Problem, doch die Koppelung des Blickwinkels an die Mausbewegung ist eines:

Das Programm soll in einem Fenster laufen (kein Vollbild!). Nun könnte man natürlich per mousemove die X,Y- Position der Maus ermitteln und immer, wenn die Maus dem Fensterrand erreicht sie per setMousePos[x,y] wieder in die Mitte setzen und jedesmal eine Variable für den Blickwinkel alphax, alphay verändern. Jedoch könnte es sein, dass dann bei einer schnellen Bewegung in Randnähe und eines Klicks außerhalb des Fensters die Form unbeabsichtigt verlassen wird. Auf jeden Fall scheint mir setmousepos. sicher nicht die 'sauberste' Möglichkeit zu sein, das Problem anzugehen.

Daher:
Kann man die Maus sperren und die Bewegungen als Variable auslesen?

Das würde die Sache schon erheblich vereinfachen.

Grüße
Andy :)

p.s.: Die Maussperre würde natürlich nur bei gedrückter Feststell-Taste aktiviert, damit man die Form auch wieder verlassen kann. :twisted:


Zuletzt bearbeitet von FatalError am Sa 12.06.04 15:04, insgesamt 2-mal bearbeitet
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: Sa 12.06.04 00:04 
Maus einsperren müsste mit "cliprect" funktionieren (wenn mich mein Gedächtnis da mal nicht täuscht *seid 2Wochen kein Delphi mehr druff hat *schnief* )
dann noch eine Kombination aus Mousemove umd setmousepos und es sollte klappen ;)
FatalError Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64

WIN ME
D6 Pers
BeitragVerfasst: Sa 12.06.04 08:37 
Danke dir Fiji-Fighter, war schon fast das richtige Stichwort :) Müsste eigentlich heißen:

ausblenden Delphi-Quelltext
1:
2:
 var Rec: PRect;
begin ClipCursor(Rec);


Mit der Variable Rec sollte man den Bereich des Bildschirmes übergebn können, der für die MAus erlaubt ist, nur wie definiere ich "Rec"? Könntest du evtl.. :oops: :oops: :oops:


Grüße
Andy :wink:

p.s.: das hier allein: "ClipCursor(Rec);" hält die Maus auf y=0 fest.
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Sa 12.06.04 09:39 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var ARect:TRect;
begin
 ARect:=Rect(100,100,200,200);
 ClipCursor(@ARect);
 ClipCursor(nil);
end;

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
FatalError Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64

WIN ME
D6 Pers
BeitragVerfasst: Sa 12.06.04 11:15 
Danke euch beiden, jetzt funzts :lol: :lol: :lol:

Gruß
Andy :wink:
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 12.06.04 11:50 
Hallo!

Du brauchst kein "gelöst" mehr in den Titel schreiben. Einfach auf den grünen Haken im ersten Posting klicken und das Thema wird als "gelöst" markiert. :-)

MfG
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
FatalError Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64

WIN ME
D6 Pers
BeitragVerfasst: Sa 12.06.04 15:03 
Danke, man lernt nie aus :idea:

Grüße
Andy :wink: