| |

Allgemeine DiskussionenHILFE - Function FORM_KEYDOWN() Unterschiede ’98 und XP | |  | Autor: Gamer | Datum: 13.06.02 18:14 |
| Liebe Visual Basic Entwicklerkollegen ,
Ich bin gerade dabei ein doch schon recht aufwendiges Spiel unter Visual Basic zu schreiben.
Es geht auch soweit recht gut voran, jedoch habe ich jetzt in der Testphase festgestellt, das sich die Funktion FORM_KEYDOWN() unter Windows 98 und XP anders verhält.
Unter Windows 98 verläuft alles zu meiner Zufriedenheit. Sobald eine Cursortaste zum Steuern de Spielfigur gedrückt wurde wird diese auch sofort weitergegeben.
Unter Windows XP kommt es jedoch zum Beginn der ‚Drückphase’ zu einer doch signifikanten Verzögerung. Dadurch ist die Steuerung der Spielfigur (in meinem Spiel) sehr träge.
Kann mir jemand helfen? Ich bin schon ganz verzweifelt.
Ich habe unten auch noch einmal ein kleines Testprogramm angehängt, welches die Problematik noch einmal zeigt. Unter Windows 98 läuft es bei mir einwandfrei, unter Windows XP bereitet es bei zwei Bekannten von mir jedoch die oben beschriebenen Probleme.
Einfach den Code in den Visual Basic Editor kopieren. Auf dem Formular müssen keine Steuerfelder oder andere Objekte angelegt werden - es kann völlig leer sein.
Über Hilfe würde ich mich wirklich sehr freuen.
Danke,
Andreas
(avg2000@gmx.de)
-----------------------------------------------------------------------------------------
Option Explicit
Dim taste As Integer
Private Sub Form_KeyDown(KeyCode As Integer, shift As Integer) ' 4 Cursortasten
If (KeyCode >= 37 And KeyCode <= 40) Then taste = KeyCode Else taste = 0
Me.Caption = KeyCode & " " & taste
KeyCode = 0
End Sub
Private Sub form_load()
Dim i, j, sizex, sizey, posx, posy, spalten, zeilen As Integer
Me.AutoRedraw = True ' erhält das Grid bei minimieren/maximieren
Me.Height = Screen.Height * 0.7 ' Formularhöhe festlegen.
Me.Width = Me.Height ' Formularbreite festlegen.
Me.ScaleMode = 3 ' Skalierung in Pixeln statt Twips
Me.Show ' Formular anzeigen
spalten = 22 ' Anzahl der Spalten
zeilen = 15 ' Anzahl der Zeilen
posx = 5 ' Startposition Spalte (0 ..)
posy = 5 ' Startposition Zeile (0 ..)
sizex = Int((ScaleWidth - 10) / spalten) ' Pixelbreite pro Feld
sizey = Int((ScaleHeight - 10) / zeilen) ' Pixelhöhe pro Feld
For i = 0 To spalten - 1 ' Das Gitternetz malen
For j = 0 To zeilen - 1
Line (i * sizex, j * sizey)-(i * sizex + sizex, j * sizey + sizey), 65535, B
Next j
Next i
FillColor = 255 ' Rot
FillStyle = 0 ' komplett ausfüllen
Circle (posx * sizex + sizex / 2, posy * sizey + sizey / 2), sizex / 4
Do ' Die Hauptschleife
taste = 0
DoEvents ' prüft Form_KeyDown() Tastatureingaben hat
If taste <> 0 Then
FillColor = Me.BackColor
ForeColor = Me.BackColor
Circle (posx * sizex + sizex / 2, posy * sizey + sizey / 2), sizex / 4
If taste = vbKeyLeft And posx > 0 Then posx = posx - 1
If taste = vbKeyRight And posx < spalten - 1 Then posx = posx + 1
If taste = vbKeyUp And posy > 0 Then posy = posy - 1
If taste = vbKeyDown And posy < zeilen - 1 Then posy = posy + 1
FillColor = 255 ' Rot
ForeColor = 0 ' Schwarz
Circle (posx * sizex + sizex / 2, posy * sizey + sizey / 2), sizex / 4
End If ' taste<>0
taste = 0
Loop
End Sub |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) sevZIP40 Pro DLL 
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|