Tasten Sperren
-
Ich benutze für mein Menü verschiedene Tasten
Spiel Starten - S
Levelauswahl - L
Optionen - O
Hilfe - F1Ist ja alles schön und gut, aber wie kann ich die Taste S sperren wenn ich grade in der Hilfe drin bin?
Ich habe in der Suchfunktion nichts gefunden...gruß stetze
-
Hallo
Tasten sperren kannst du nicht. Da kannst aber die Verarbeitung von Tasten verhindern, je nachdem wie du die Hotkeys in deinem Programm umgesetzt hast.
bis bald
akari
-
So hab ichs gemacht...
void __fastcall Tcarrace::FormKeyPress(TObject *Sender, char &Key) { // Bei Druck der Tasten 'q' oder 'Q' wird das Spiel beendet if(Key=='q' || Key=='Q') { // Aufruf einer MessageBox mit Ja, Nein if (Application->MessageBox("Willst du das Spiel beenden?", "Beenden", MB_YESNO + MB_ICONQUESTION + MB_TOPMOST) == IDYES) { // Bei Ja, wird das Spiel beendet Close(); } else { // Bei Nein passiert nichts... } } // Bei Druck der Tasten 's' oder 'S' wird das Spiel gestartet if(Key=='s' || Key=='S') { pn_spielinfos->Visible=true; pn_spielfeld->DoubleBuffered=true; pn_spielfeld->Visible=true; Spielzeittimer->Enabled=true; Punktezaehler->Enabled=true; // Das Menü wird ausgeblendet, der zurück Button wird eingeblendet menue_ausblenden(hintergrundbild, starten, levelauswahl, optionen, hilfe, beenden, zurueck, highscore); hilfe->Visible=true; // Die Hilfe wird weiterhin angezeigt }
-
Habs hinbekommen, einfach noch gemacht das die Tasten nur gehen wenn der Button auch sichtbar ist
// Spiel beenden if((Key=='q' || Key=='Q') && (beenden->Visible==true)) // Wenn q, oder Q gedrückt... { // Aufruf einer MessageBox mit Ja, Nein if (Application->MessageBox("Willst du das Spiel beenden?", "Beenden", MB_YESNO + MB_ICONQUESTION + MB_TOPMOST) == IDYES) { // Bei Ja, wird das Spiel beendet Close(); } else { // Bei Nein passiert nichts... } } // Spiel Starten if((Key=='s' || Key=='S') && (starten->Visible==true)) // Wenn s, oder S gedrückt... { pn_spielinfos->Visible=true; // Zeit, Punkte werden angezeigt pn_spielfeld->DoubleBuffered=true; // Puffer für Spielfeld an pn_spielfeld->Visible=true; // Spielfeld wird eingeblendet Spielzeittimer->Enabled=true; // Timer Zeit ist an Punktezaehler->Enabled=true; // Timer Punkte ist an // Das Menü wird ausgeblendet, der zurück Button wird eingeblendet menue_ausblenden(hintergrundbild, starten, levelauswahl, optionen, hilfe, beenden, zurueck, highscore); hilfe->Visible=true; // Die Hilfe wird weiterhin angezeigt }