OnKeyDown - Problem Borland



  • Hallo,
    Ich habe ein Problem, dass ich nicht verstehe.

    Ich habe diesen Code geschrieben:

    void __fastcall TFGui::FormKeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
    if (Key == 114){
        FGui->Label1->Caption="R gedrückt";
        Application->Terminate();}
    
    }
    

    und die Operation im Objektinspektor beim Formular (TFGui) bei Ereignisse eingetragen, doch wenn ich dann R drücke, geschieht nichts. Ich habs auch schon mit anderen varianten versucht, aber das Ergebniss war immer dasselbe.
    Kann mir jemand bei meinem Fehler helfen?

    Mfg,
    Mick



  • mick1114 schrieb:

    Kann mir jemand bei meinem Fehler helfen?

    Nicht, wenn du im falschen Forum fragst, das hat mit Standard-C++ nichts zu tun. Lies dir bitte den Link in meiner Signatur einmal durch.



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum VCL (C++ Builder) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hallo Mick,

    vermutlich ist dein "r" nicht die 114 🙄 Lass Dir doch mal mit

    ShowMessage(Key);
    

    den ASCII-Wert der gedrückten Taste anzeigen.

    Gruß Torsten



  • K ist nicht 114 benutze mal den Debugger um an den richtigen Wert zu kommen
    oder lass dir den Key erst in einen zB Label anzeigen.



  • oder gleich das Zeichen vorgeben:

    if ( Key == 'R')
    


  • Hallo,

    @torsten_156: "r" ist die 114 (steht hier)

    @mick1114: Das ganze gehört in's OnKeyPress-Event des Formulares

    LG, Micha



  • RandomAccess85 schrieb:

    Hallo,

    @torsten_156: "r" ist die 114 (steht hier)

    Hi Micha,
    hab ich ja auch gefunden. Demnach müsste "r" ja wirklich die 114 sein. Bei mir ist allerdings das "r" die 82(laut Tabelle also "R").
    Da gibt es doch bestimmt noch eine Einstellung des Tasten-Layouts, oder so?

    SG
    Torsten



  • torsten_156 schrieb:

    RandomAccess85 schrieb:

    Hallo,

    @torsten_156: "r" ist die 114 (steht hier)

    Hi Micha,
    hab ich ja auch gefunden. Demnach müsste "r" ja wirklich die 114 sein. Bei mir ist allerdings das "r" die 82(laut Tabelle also "R").
    Da gibt es doch bestimmt noch eine Einstellung des Tasten-Layouts, oder so?

    SG
    Torsten

    R ist 82 um herrauszufinden ob groß bzw. klein geschrieben wird muß man TShiftState Shift auswerten.



  • Sorry für das falsche Forum, hatte 2 Tabs geöffnet und dann leider ins Falsche gepostet.
    Danke für die Zahlreichen antworten, aber mein Fehler war etwas anderes, der Fokus war immer auf einen Button gesetzt und nicht auf FGui. Das hab ich dann u.a. mit "SetFocus();" gelöst.
    Aber jetz hab ich ein folge "Problem":
    Immer, wenn ich eine Taste drücke passiert kurz nichts und dann bewegt sich mein Punkt (ich hab ein Image gemacht, in dem sich eine Grafik bewegt). Also es funktioniert schon, nur das Beginnen der Bewegung ist verzögert.
    Kann ich das irgentwie beheben?

    btw: es funktioniert (bei mir zumindest) auch wenn ich 'R' anstat den ascii code mach.

    Mfg,
    Mick



  • Hallo,

    Mit FormKeyDown werden immer nur die Tastencodes geliefert. In der Regel die Großbuchstaben. Mit FormKeyPress kommen alle Kobinationen, also Groß- und Kleinbuchstaben.

    Gruß Rudi


Log in to reply