webForumDet fria alternativet

Fånga upp tangentbordstryckningar

Programmering

5 svar · 374 visningar · startad av Alpha II

Medlem sedan maj 20002 993 inlägg
Frågan#1

Hej
Gör man ett vanligt spel har man ju tillgång till WinProc funktionen och då blir det väldigt enkelt att hantera nedtryckta knappar. Men nu håller jag på en editor för ett 3D spel och använder en Panel för att rita OpenGL och knappar osv. Hur gör jag nu för att till exempel fånga upp i fall om användaren trycker space?

Medlem sedan jan. 200327 inlägg
#2

Om du är beredd att stå ut med att länka till en .dll så kanske detta kan vara något?
http://hem.passagen.se/opengl/glfw/
http://www.xmission.com/~nate/glut.html

Med dessa kan du rätt enkelt få tillgång till tgb och mus respons.

Medlem sedan maj 20002 993 inlägg
#3

Nej det var inte riktigt det jag var ute efter. Jag har mitt fönster, OGL fukar fint, mus interaktion funkar bra osv. Men eftersom det är ett windows fönster där jag har en massa kontroller så har jag ingen aning om hur jag ska fånga upp tangentbordstryckningar. :(

Medlem sedan jan. 200327 inlägg
#4

Om jag förstår dig rätt så har du alltså via win32api skapat ett fönster med diverse kontroller (knappar mm) samt en panel för att där visa dina opengl objekt?

Om detta stämmer får jag fråga varför du inte har valt att göra det genom VCL? Blir det prestandaförluster kanske?

Jag hade tidigare en "mall" (gjord av Jan Horn tror jag) för att jobba som jag beskrev ovan och det funkade bra tyckte jag. Exe-filen blir ju större med vcl men det kanske är godtagbart? Om du vill kan jag se efter om jag har mallen kvar nerbrännd på cd?

Medlem sedan maj 20002 993 inlägg
#5

Nej jag har använt VCL. Klickat ut lite knappar osv. :) Men om jag skulle ha använt Win API skulle jag ju ha tillgång till WinProc och kunna fång upp WM_KEYDOWN. Men hur gör jag det när jag använder vcl?

Medlem sedan juni 2000350 inlägg
#6

Om du sätter Formulärets property KeyPreview till true. Så bör du kunna fånga tangentbordet.

Ett annat alternativ kan vara Application.OnMessage.

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)