Tastaturabfrage



  • Hi,

    ich weiß, dass es bereits Einträge zum Thema gibt, aus denen ich aber nicht wirklich schlau geworden bin.

    ich versuche eine einfache Tastenabfrage in einer Form zu verwirklichen.

    ich experimentiere gerade mit KeyDown, aber der Compiler meckert bei dem e (Error c2061; Syntxfehler Bezeichner 'e')

    Muss dafür noch ein weiter Header eingefügt werden?

    Oder hat vielleicht jemand eine funktionierende Version? Wie mein Nick schon vermuten lässt, gehört das Programmieren nicht zu meinen geliebten Teil der Ausbildung 🙂

    Danke schon mal im vorraus

    Achja, ich nutze übrigens MS Visual Studio 2003, C++ Anwendungen, Windows Forms



  • Also normalerweise funktioniert das so:

    Einen Keydown EventHandler erstellen und dann per
    if (e->KeyCode == Keys::Return)

    überprüfen welche Taste gedrückt wurde (in diesem Fall wird die if Bedingung beim Druck auf die Eingabetaste erfüllt)

    Wie wärs wenn du mal deinen Code posten würdest?



  • private: System::Void Form1_KeyDown(System::Object * sender, System::Windows::Forms::KeyEventArgs * e)
    {
    if e->KeyCode==Keys::61
    MessageBox(NULL, "Erst Tür öffnen!", "MessageBox", MB_OK);
    }

    Das ist alles erst mal nur ein Testprogramm...



  • Kommt Du von der VB-Schiene?

    Die Bedingung beim if muss in Klammern gestellt werden.



  • super, der e-Fehler ist weg und mit dem Return funktioniert das auch. DANKE 👍

    Eine Frage hätte dann noch: hinter dem :: kann man einen string schreiben, rein theoretisch müsste aber auch der ASCII funktionieren... nur hatte dieser bei mir das Problem, dass 61 = a nicht funktioniert hat. wo kann ich eine tabelle finden, mit funktionierenden Zeichen?

    Ps: Ehemals habe ich mit TurboPascal gelernt, ist aber schon Jahre her 😃



  • Programmiermuffel schrieb:

    super, der e-Fehler ist weg und mit dem Return funktioniert das auch. DANKE 👍

    Eine Frage hätte dann noch: hinter dem :: kann man einen string schreiben, rein theoretisch müsste aber auch der ASCII funktionieren... nur hatte dieser bei mir das Problem, dass 61 = a nicht funktioniert hat. wo kann ich eine tabelle finden, mit funktionierenden Zeichen?

    Ps: Ehemals habe ich mit TurboPascal gelernt, ist aber schon Jahre her 😃

    Schau mal hier:
    http://www.devx.com/tips/Tip/25618?type=kbArticle&trk=MSCP
    http://msdn2.microsoft.com/de-de/4z4t9ed1(VS.80).aspx
    http://msdn2.microsoft.com/de-de/library/4z4t9ed1(VS.80).aspx



  • diese Zeichen funktionieren leider nicht. weder Hex noch Dec!

    Ich hab mal was aus einen Beispiel probiert... dort wurde die "D0" (de_null) verwendet, welches für die null stand.

    Hat vielleicht jemand eine Ahnung, welcher Code dort verwendet wurde??



  • Ich arbeite immer mit:

    Keys::

    Dort gibts dann ne schöne Liste 🙂



  • JA das dachte ich mir auch 🙂

    ABER es geht nicht...



  • Geht nicht ist keine Fehlerbeschreibung.

    WennDu in der form die Tasten abfangen willst, auch wenn Du in einem Control bist, musst Du die KeyPrevieweigenschaft auf true stellen. (Gab dazu erst einen Beitrag, kannst ja ein wenig suchen).



  • Knuddlbaer schrieb:

    Geht nicht ist keine Fehlerbeschreibung.

    WennDu in der form die Tasten abfangen willst, auch wenn Du in einem Control bist, musst Du die KeyPrevieweigenschaft auf true stellen. (Gab dazu erst einen Beitrag, kannst ja ein wenig suchen).

    Super! ohne es zu Wissen hast du mir bei meine nächsten Problem geholfen, welches ich auf morgen verlegt hatte 👍 Danke

    Nur: da ist ein neues Problem... jetzt stürzt das Programm ab, nach den Tastendruck, solange meine einfache verzweigung weitergeth.

    Gibt es eine Abbruchsbedingung aller endif aus vb??



  • Schau mal ins Grundlagenbuch und nochmal:

    Geht nicht oder stürzt ab sind keine Fehlerbeschreibungen ^^


Anmelden zum Antworten