- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 10

Thema: Commandbuttons in VB mit Tastatur Tasten belegen ?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.04.2004
    Beiträge
    51

    Commandbuttons in VB mit Tastatur Tasten belegen ?

    Anzeige

    Powerstation Test
    Guten Morgen roboternetz
    Fahre im Moment mit meinem Roboter/Auto mit der Maus ... bzw den commandbuttons bei visual basic 6

    würde aber gerne mit der tastatur beschleunigen
    und wenn es noch möglich die lenkung mit der maus zu steuern

    im vorhinein tausend dank

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    22.11.2003
    Beiträge
    459
    Der einfachste Weg ist folgender. Du nimmst irgend eine leere Form und verwendest dort das KeyDown-Ereignis. Wenn die Form aktiviert ist und du Tasten drückst, wird dieses Ereignis aufgerufen. Dann musst du überprüfen, welche Taste gedrückt wurde und je nach dem bewegst du dann den Roboter. komplizierter wird es, wenn du auf der Form andere Steuerelemente hast. Dann erreicht das KeyDown-Ereignis nämlich nicht die Form sondern das Steuerelement, das gerade den Fokus hat.

    Die Steuerung mit der Maus kannst du mit dem MouseMove-Ereignis machen.

    Gruß
    Johannes
    relaunched: http://www.mindrobots.de algorithms for intelligent robots

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.05.2004
    Ort
    Detmold
    Alter
    36
    Beiträge
    557
    Falls mehrere Steuerelemente da sind, kann man das auch so machen:
    Code:
    Private Sub Form_LostFocus()
        Form1.SetFocus
    End Sub
    Gruß, Trabukh
    "Der Mensch wächst am Widerstand" (Werner Kieser)

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    22.11.2004
    Ort
    Luzern
    Alter
    37
    Beiträge
    80
    hallo roll_.

    ich habe dir ein Beispiel, wie ich das gemacht habe um auf meinem Form anstatt auf den Drucken Commandbutton zu klicken ich einfach nur noch Alt + D auf der Tastatur eingeben musste. Ich bin sicher du kannst das passend für dich umschreiben.

    Code:
    Private Sub cmdDrucken_KeyPress(KeyAscii As Integer)
    Do
       DoEvents
       vbKeyAltD = Me.cmdDrucken
    Loop
    End Sub
    gruss commander7

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    @Trabukh
    Falls mehrere Steuerelemente da sind, kann man das auch so machen:

    Code:Private Sub Form_LostFocus()
    Form1.SetFocus
    End Sub
    Kann man die anderen Steuerelemente denn dann noch benutzen?
    Ich stell es mir etwas schwierig vor, z.b. in eine Textfeld einen Text einzugeben oder einen Scrollbar zu bedienen, wenn dem Ding ständig der Focus entzogen wird. Sooo langsam ist VB doch bestimmt nicht

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.05.2004
    Ort
    Detmold
    Alter
    36
    Beiträge
    557
    @recycle: Ja ne, ist klar! Aber das sollte ja auch nur die Idee dahinter aufzeigen, das ganze könnte man dann noch mehr oder weniger elegant mit einem Timer verknüpfen: Fokus verloren - Timer starten - Bei Ablauf von sagen wir mal einer 1/4 Sekunde wieder Fokus zurück... easy! :-D

    Gruß, Trabukh
    "Der Mensch wächst am Widerstand" (Werner Kieser)

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    22.11.2003
    Beiträge
    459
    Naja, die beste Methode ist es, jedes Key-Down-Ereignis aller Controls auf eine Prozedur umzulenken, falls es sich um die Steuertasten handelt. Dann kann man immernoch etwas in die Textbox schreiben oder mit der Tabtaste zwischen den Steuerelementen wechseln und diese dann mit Enter betätigen. Und dann ist es egal, wo der Fokus liegt, die Steuertasten werden immer erkannt.

    Gruß
    Johannes
    relaunched: http://www.mindrobots.de algorithms for intelligent robots

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    30.06.2006
    Beiträge
    15
    Es gäb noch ne mäglichkeit in der der Fokus egal ist:
    Und zwar gibt es die Win32-API-Funktion "GetAsyncKeyState" mit der man jeder Zeit den Zustand einer Taste abfragen kann, man müsste dann im Hintergrund in einem extra Thread oder mit nem Timer immer die Tasten abfragen die in Frage kommen.
    Deklaration:
    Declare Function GetAsyncKeyState Lib "user32" ( _
    ByVal vKey As Long) As Integer

    [edit] Hier ein Beispiel: http://www.activevb.de/tipps/vb6tipps/tipp0070.html [/edit]

    mfG
    LowLeveL

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.06.2006
    Ort
    Schriesheim
    Alter
    37
    Beiträge
    478
    Zitat Zitat von Johannes
    Naja, die beste Methode ist es, jedes Key-Down-Ereignis aller Controls auf eine Prozedur umzulenken, falls es sich um die Steuertasten handelt.
    Ob das die beste Lödung ist, wage ich zu bezweifeln...

    Such dir doch ein Hotkey.ocx, das ein paar tasten überwacht, dann muss deine Form nichtmal aktiv/im vordergrudn sein.

    Falls du solch ein OCX brauchst aber keines findest, sag grad, dann such ichs raus...

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2004
    Beiträge
    378
    Hi,

    schau dir mal die Beispiele auf meiner Seite an.
    Da habe ich auch die Steuerung über Maus und Tastatur.
    Eine Weiterentwicklung des Programmes ist dadurch besser möglich.

    Bye Ulli

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests