Hallo.
Dieses mal geht es um Verbesserungsvorschläge zu einer Funktion "KeysForLeftParenthesisWerePressed()", in der verschiedene Tasten mit _IsPressed() abgefragt werden. Es gibt 1 Zeichentaste (Char key) und 3 Steuertasten (Control keys). Damit es nicht zu kompliziert wird (für mich) habe ich die Steuertasten begrenzt auf: Ctrl, Shift und Alt. Den japanischen Hanuta-Keys (richtig: "Hankaku key") habe ich weggelassen, da ich weder einen virtuellen Key-Code zuordnen konnte, noch glaube, dass man ihn zum Schreiben von "(" braucht.
In der Funktion wird die Zeichentaste immer ausgewertet. Zusätzlich wird ermittelt, ob und wieviele Steuertasten ausgewertet werden sollen. Z.B. beim französischen Keyboard-Layout benötigt man nur die Taste 5, um "(" zu schreiben = 0 Steuertasten. Bei deuschen KB-Layout drückt man für "(" die Kombi Shift+8, also 1 Steuertaste, usw. Ob es Tastenkombis gibt, die Ctrl und/oder Alt benutzen um "(" zu schreiben, konnte ich nicht herausfinden.
Kurzbeschreibung
Der Funktion wird 1 Zeichentaste übergeben + 0 bis 3 Steuertasten. Es soll geprüft werden, ob diese Tasten gedrückt wurden. Rückgabe True/False. Wichtig ist, dass dabei auch geprüft werden soll, dass nur die gewünschten Tasten und keine anderen dazu gedrückt werden. Wenn ich wüsste wie, würde ich folgendes programmieren:
If _IsPressed(Zeichentaste) And _IsPressed(Steuertasten) And Not _IsPressed(AndereTasten) Then
Bitte seht euch die Funktion "KeysForLeftParenthesisWerePressed()" mal an und sagt, ob ihr Ideen zur Verbesserung oder Vereinfachung habt.
Edit: Bugs bei der Ermittlung der unbenutzen Steuertasten gefunden und (hoffentlich) behoben.