vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Texteingabe wie beim Handy 
Autor: AndreasD
Datum: 05.08.06 22:50

Servus anve,

ich habe das ganze mal ausprobiert. Und hab auch eine Lösung für dein Problem gefunden.

Plaziere auf einer Form einen Timer (Name: Timer1; Interval: 750) und ein Textfeld (Name: Text1; Multiline = True).

Nun kopierst du in den Code-Teil der Form folgenden Code (die Funktion des Codes ist in den Kommentaren beschrieben):

Option Explicit
 
Private tmpString As String ' 'Zwischenspeicher'-Variable declarieren
 
 
Private Sub Text1_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
    Case vbKey0 To vbKey9 ' Wenn die Ziffern 0 bis neun eingegeben werden, dann 
    ' ...
        Call addTMP(Chr(KeyAscii)) ' aufrufen der Hilfsfunktion addTMP mit 
        ' Übergabe der Ziffer
        KeyAscii = 0 ' Zeichencode auf "Kein Zeichen" zurücksetzen
    End Select
End Sub
 
Private Function addTMP(Zahl As String) ' Hilfsfunktion
On Error Resume Next
    If Not Right(tmpString, 1) = Zahl Then ' wenn eine neue Zahl übergeben 
    ' wurde,
        Call Timer1_Timer ' soll die Berechnung sofortbeginnen
        tmpString = Zahl ' Und die neue Zahl wird dem "Zwischenspeicher" _
          übergeben
    Else
        tmpString = tmpString & Zahl ' Ansonsten wird die neue Zahl mit angefügt
    End If
End Function
 
Private Sub Timer1_Timer()
    Select Case Len(tmpString) ' Anzahl der Zeichen im tmpString erfassen
    Case 4 ' bei vier Zeichen:
        If tmpString = "2222" Then ' wenn 4x die 2 vorkommt, dann
            Text1.SelText = "2" ' wird dem Textfeld die Zahl 2 übergeben
        ElseIf tmpString = "3333" Then ' wenn 4x die 3 vorkommt, dann
            Text1.SelText = "3" ' wird dem Textfeld die Zahl 3 übergeben
        ElseIf tmpString = "4444" Then ' usw.
            Text1.SelText = "4"
        End If
 
    Case 3 ' bei drei Zeichen:
        If tmpString = "111" Then ' wenn 3x die Zahl 1 vorkommt, dann
            Text1.SelText = "1" ' wird dem Textfeld die Zahl 1 übergeben
        ElseIf tmpString = "222" Then ' wenn 3x die Zahl 2 vorkommt, dann
            Text1.SelText = "c" ' wird dem Textfeld der Buchstabe c übergeben
        ElseIf tmpString = "333" Then ' usw.
            Text1.SelText = "f"
        ElseIf tmpString = "444" Then
            Text1.SelText = "g"
        End If
 
    Case 2 ' bei zwei Zeichen:
        If tmpString = "11" Then ' wenn 2x die Zahl 1 vorkommt, dann
            Text1.SelText = vbNewLine ' wird dem Textfeld die 'Enter'-Taste 
            ' übergeben
        ElseIf tmpString = "22" Then ' wenn 2x die Zahl 2 vorkommt, dann
            Text1.SelText = "b" ' wird dem Textfeld der Buchstabe b übergeben
        ElseIf tmpString = "33" Then ' usw.
            Text1.SelText = "e"
        ElseIf tmpString = "44" Then
            Text1.SelText = "h"
        End If
 
    Case 1
        If tmpString = "1" Then ' wenn 1x die Zahl 1 vorkommt, dann
            Text1.SelText = " " ' wird dem Textfeld ein Leerzeichen übergeben
        ElseIf tmpString = "2" Then ' wenn 1x die Zahl 2 vorkommt, dann
            Text1.SelText = "a" ' wird dem Textfeld der Buchstabe a übergeben
        ElseIf tmpString = "3" Then ' usw.
            Text1.SelText = "d"
        ElseIf tmpString = "4" Then
            Text1.SelText = "g"
        End If
    End Select
    tmpString = "" ' Inhalt der Zwischenspeicher-Variable löschen
    Timer1.Interval = 0: Timer1.Interval = 750 ' Timer zurücksetzen
End Sub
Allerdings habe ich nur bis zum Buchstaben "g" programmiert. Den Rest musst du halt selbst noch hinzufügen.

Ich hoffe das hilft dir etwas weiter

MfG
Andreas



! ! Never change a running system ! !

** www.andreas-dirscherl.de **
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Texteingabe wie beim Handy1.180anve05.08.06 19:17
Re: Texteingabe wie beim Handy691AndreasD05.08.06 22:50
Re: Texteingabe wie beim Handy624AndyOG06.08.06 12:26
Re: Texteingabe wie beim Handy600anve08.08.06 21:02
Re: Texteingabe wie beim Handy581AndreasD08.08.06 21:59
Re: Texteingabe wie beim Handy588AndyOG09.08.06 16:47
Re: Texteingabe wie beim Handy717AndyOG09.08.06 16:52
Re: Texteingabe wie beim Handy535anve10.08.06 19:00
Re: Texteingabe wie beim Handy552ModeratorMartoeng17.08.06 09:40
Re: Texteingabe wie beim Handy668anve18.08.06 22:01
Re: Texteingabe wie beim Handy779ModeratorMartoeng19.08.06 16:19
Re: Texteingabe wie beim Handy505anve19.08.06 21:43
Re: Texteingabe wie beim Handy563ModeratorMartoeng19.08.06 22:30
Re: Texteingabe wie beim Handy560anve28.08.06 16:00

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel