ssCtrl + Taste X global abfangen



  • Tja, ich würd gern bei meinem Prog. einige Shortkeys einbauen, die sollen unabhängig vom Focus Ereignisse auslösen.
    zum Bleistift : STRG + V

    Bin für Anregungen dankbar...

    DIV

    Rudi



  • Hi, sowas macht man über eine ActionList. Man baut eine ActionList ins Programm ein und macht sich irgednne Action. Im ObjectInspector kann man dann einen Shortcut für diese Action auswählen 🙂



  • Also in der Hilfe hab ich nichts zum Thema "ActionList" gefunden (bcb1)...

    Ich dachte mir mehr sowas:

    if((Pause == false)&&(Key ==19))
    {
    //code...
    }
    

    Aber

    if (Key == (ssCtrl,109))//gibt es leider nicht...
    {
    //code...
    }
    

    funzt leider nicht (glaub' OnKeyDown gibt immer nur den Wert der 1. Taste an Key weiter), außerdem will ich das ganze ja auch GLOBAL abfangen weiß aber nicht wo ich das unterbringen soll.
    DiV
    Rudi



  • Wie global solls denn sein? Schau vielleicht auch mal in die FAQ da gibts was für Systemglobale Dinger.

    -junix



  • Also ich würde vorschlagen die OnKeyDown Routine normal zu nutzen,und zu prüfen ob Key=VK_V,wenn das alles erfolgreich war kannst du mit if(GetKeyState VK_CONTROL)<0){....} rausbekommen ob die STRG Taste beim drücken von V gedrückt war 😉



  • Achso ... natürlich 🙄 Allerdings kann man sich GetKeyState sparen und einfach auf den Parameter "Shift" vertrauen. (Genaueres zu dem THema in FAQ und HIlfe)

    -junix



  • Ich geb mal ein genaues Stichwort zur FAQ: Hotkeys.



  • @ c++ hacker:
    Als mein builder (1.0) kann mit GetKeyState nichts anfangen, oder hab ich nur vergessen was zu includen?
    @junix:
    Ist der Parameter "Shift" das selbe wie Control? Ich will doch keine Großbuchstaben abfangen...
    Vielleicht hat ja jemand noch'n Beispiel das auf bcb1.0 läuft, zur Not auch auf dem OnKeyDown Event.Ich will doch nur meinen Freeware Vocabeltrainer ein bisschen konfortabler machen... 😉
    div

    Rudi



  • Für GetKeyState musst du auf deinem Oldtimer wahrscheinlich windows.h explizit einbinden, bei neueren BCBs wird das von der vcl.h miterledigt.

    Mit Shift ist der beim OnKeyDown standardmässig übergebene Parameter TShiftState Shift gemeint. Zur Verwendung desselben siehe auch die FAQ unter "Umgang mit 'Set'".



  • Also:

    #include "windows.h"
    
    ... 
    
    if((GetKeyState VK_CONTROL) < 0)
    
    {
    ShowMessage("Done");
    }
    

    Löst bei mir immer ": ) expected" aus :(((
    Sowohl auf bcb1 als auf bcb5!
    Was mach ich bloß falsch?

    DiV
    Rudi



  • Hast du dir auch mal die Hilfe zu GetKeyState angesehen? Wie sehen Funktionen denn üblicherweise aus, fehlt da nicht etwas!?

    Nicht immer alles blind aus dem Forum kopieren! 😉



  • Was soll der ganze Blödsinn mit GetKeyState??? Ich habs schon einmal gesagt: Hotkeys!!! Steht in der FAQ. Man kann so jegliche Zeichen mit Shift abfangen.


Anmelden zum Antworten