Hi,
bei einer
NonVCL-Version Deines Programms in der Nachrichtenschlaeife die Tasten anfragen, ansonsten wia OnKeyPress und KeyPreview auf True. dann hast Du aber einzelne Prozeduren,
NonVCL wäre da etwas angebrachter, da hast Du dann im Case die Möglichkeit die Tasten abzufragen, nagle mich jetzt Bitte nicht an die Wand, ich habe es noch nicht getestet, müsste aber gehen, vielleicht probiere ich es am WE mal aus.
Delphi-Quellcode:
function WndProc(hWnd: HWND; message: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
Result:=0;
Case message of
WM_CREATE: begin
InitOpenGL;
h_DC:=GetDC(hWnd);
SetDCPixelFormat(h_DC);
h_RC:=wglCreateContext(h_DC);
wglMakeCurrent(h_DC,h_RC);
InitGL;
end;
WM_DESTROY, WM_CLOSE: begin
ChangeDisplaySettings(DEVMODE(nil^), 0);
wglMakeCurrent(h_DC,0);
wglDeleteContext(h_RC);
ReleaseDC(hWnd,h_DC);
PostQuitMessage(0);
end;
WM_KEYDOWN: begin
Go[wParam]:=true;
end;
WM_KEYUP: begin
Go[wParam]:=false;
end;
WM_SIZE: begin
ResizeGL(LOWORD(lParam),HIWORD(lParam));
end;
else begin
Result:=DefWindowProc(hWnd,message,wParam,lParam);
exit;
end;
end;
end;