[VB6] Keyboard buffer legen

Pagina: 1
Acties:

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 10:29
Hallo,

Ik ben bezig met een programma dat met een barcode lezer werkt.

Het gaat zo. Je focused op de textbox waar de code (die op een sticker staat) wordt in gevoerd. Je gaat met de barcodelezer over een barcode heen en die voort het in in die tekstbox. Wanneer er 14 karakters zijn ingevoerd (dat is de lenget van een barcode) moet er een popup komen. Dit gebeurt ook alleen wordt die direct weg gedrukt. Ik vermoed dat dit komt omdat er nog wat in de keyboard buffer staat. Nu wil ik deze dus legen voor hij de MsgBox opent maar hoe doe je dat?

Verwijderd

hmm zou wel eens komen doordat er een vbKeyReturn achteraan word gegooid idd. Misschien helpt het als je in de KeyPress-event van die tekstbox na 14 ingevoerde tekens de keyascii op 0 zet. Dus....

code:
1
2
3
4
5
6
Private Sub txtTest_KeyPress(KeyAscii As Integer)
     If len(txtTest) > 14 Then
           KeyAscii = 0
           Exit Sub
     End If
End Sub

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 10:29
Verwijderd schreef op 13 May 2003 @ 10:32:
hmm zou wel eens komen doordat er een vbKeyReturn achteraan word gegooid idd. Misschien helpt het als je in de KeyPress-event van die tekstbox na 14 ingevoerde tekens de keyascii op 0 zet. Dus....

code:
1
2
3
4
5
6
Private Sub txtTest_KeyPress(KeyAscii As Integer)
     If len(txtTest) > 14 Then
           KeyAscii = 0
           Exit Sub
     End If
End Sub
Die had ik al uitgeprobeerd maar die werkt niet bij mij. Hij sluit de MsgBox direct. Achter de msgbox zit een SetFocus naar die textbox. Zal dat er iets mee te maken hebben?

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Wat Klaas zegt klinkt mij ook het meest logisch. Je moet eens kijken naar de configuratie van je scanner, want daar kan je vast wel instellen met wel karakter hij afsluit.

Dat karakter moet je dan opvangen.

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 10:29
Supervisor schreef op 13 May 2003 @ 10:45:
Wat Klaas zegt klinkt mij ook het meest logisch. Je moet eens kijken naar de configuratie van je scanner, want daar kan je vast wel instellen met wel karakter hij afsluit.

Dat karakter moet je dan opvangen.
Het probleem is dat wanneer er 14 karakters in de textbox zitten er automatisch een msgbox (of een inputbox afhankelijk van de code) wordt geopent. Ik kan die 14+ karakters dus niet afvangen. Misschien moet ik een timer inbouwen die 200ms wacht en dan pas die msgbox opent. Ik kijk even.

edit:

Ik heb de KeyPress sub verwijdert en die timer toegepast en dat werkt! Hij wacht 300 ms en laat dan pas de msgbox zien.

[ Voor 11% gewijzigd door Slagroom op 13-05-2003 11:04 ]