Hjælp til GetASyncKeyState...

Tags:    delphi

Hej! Jeg er ny ud i Delphi universet, men har dog tidligere programmeret i Pascal, så springet burde ikke være så stort. Jeg går og leger lidt med tanken om at lave et ASCII spil, altså et console program, som kun bruger ASCII tegn. I den forbindelse skal jeg bruge GetASyncKeyState til at tjekke hvilke knapper spilleren holder nede (eller har trykket på kortvarigt). Jeg har lavet følgende simple program for at test GetASyncKeyState, som burde skrive et stigende tal hver gang man trykket RETURN indtil man trykker ESCAPE, men den får blot console vinduet til at fryse:

Fold kodeboks ind/udKode 


Hvis jeg kan få ovenstående kode til at virke, er ideen, at jeg vil lave et loop, der gennemløbes 25 gange i sekundet, hvor der først tjekkes for tryk på knapper, hvorefter skærmen opdateres.



Hos mig virker koden fint.



Hos mig virker koden fint.


Hmmm... Underligt. Jeg har også prøvet GetKeyState med samme resultat. Jeg bruger Win98 -- kan det være årsagen?



Jeg har andetsteds ladet mig fortælle, at min kode ikke virker, fordi jeg bliver nødt til at "process windows messages", og eftersom jeg ikke gør det, tror windows at min console sidder fast i en "infinite loop". Men hvis det er tilfældet, hvordan kan det så være, at koden virker fint hos Jonas (Decko)?



Jeg er simpelthen ved at blive sindssyg af det her... :(

GetASyncKeyState eller GetKeyState er helt nødvendige for at jeg kan lave mit program, men det vil under ingen omstændigheder virke. For at jeg har forstået helt korrekt: Jonas, kunne du også køre programmet således at der blev vist stigende tal på skærmen, hver gang du trykkede RETURN indtil du trykkede ESCAPE for at lukke console vinduet? Eller compilede du bare koden? Jeg kan nemlig godt compile koden uden fejlbeskeder, men når jeg skal køre den, sker der som sagt det, at vinduet fryser med det samme uden at reagere på noget som helt.



t