German Andere (eigene) Tastatur: Wie bekomme ich die Tastenklicks in das Textfeld?

Discussion in 'German Forum' started by JOTHA, Oct 25, 2008.

  1. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo Forum,

    ich habe schon nach einer Lösung hier im Forum gesucht, bin aber leider nicht fündig geworden.

    Für einen kleinen Devisenrechner möchte ich eine eigene Tastatur verwenden.

    1) Ich möchte größere Tasten haben.
    2) Es sollen nur die Tasten vorhanden sein, die tatsächlich benötigt werden.
    3) Es soll das "Problem" mit der Eingabe eines Punktes (.) anstelle des Kommas (,) umgangen werden, sonst rechnet das Programm falsch.

    Was mich aber jetzt interessiert ist folgendes:

    A) Wie bekomme ich die Tastenklicks in das Textfeld?
    Erklärungsbeispiel: Ich drücke auf "1" und dann soll im Textfeld die "1" erscheinen, dann drücke ich die "2" und es soll die "2" hinter die "1" geschrieben werden.

    Anbei habe ich die Applikation angehängt.

    Falls das jemand weiß: Später möchte ich noch die aktuellen Kurse über das Internet laden ...

    ... bin für jede Hilfe und jeden Hinweis dankbar!
     

    Attached Files:

  2. Filippo

    Filippo Expert Licensed User

  3. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo Filippo,

    vielen Dank für deine Hilfe. Ich habe gerade dein Beispiel heruntergeladen und spiele mal damit herum.

    Das mit den Buttons habe ich zuerst mit "Button" und nicht mit "ImageButton" gemacht, da ich noch keine passenden Images für die Tastatur habe. Später will ich das aber noch ändern.

    Hat jemand einen Tip, wo ich skalierbare (am besten auf 41 Pixel) Zahlen- oder Tastatur-Buttons als Image (bmp, png, jpg, ...) herbekomme?

    Mal nebenbei: Warum arbeitest Du noch mit 6.1?

    ... so, jetzt gibt es erstmal Mittagessen, die Familie ruft ...
     
  4. specci48

    specci48 Well-Known Member Licensed User

    Hallo JOTHA,

    wenn du immer den Betrag und niemals den Kurs eingeben möchtet, d.h. den letzteren immer über das Internet ermittelst, dann kann man das z.B. auch über ein gemeinsames ClickEvent regeln:

    Code:
    Sub App_Start
        Devisenrechner.Show
       ComboBoxDevise1.SelectedIndex = 
    1
       ComboBoxDevise2.SelectedIndex = 
    0
       
       
    ' ClickEvents an sämtliche Zahlen
       For i = 0 To 9
          AddEvent (
    "ButtonPanel0" & i, Click, "TastaturSub")
       
    Next
       
    ' und an das Komma
       AddEvent("ButtonPanelKomma", Click, "TastaturSub")
    End Sub

    Sub TastaturSub
       DevisenWert1.Text = DevisenWert1.Text & 
    Sender.Text
    End Sub
    Allerdings würde mir persönlich dann noch ein Button zum Löschen einer Falscheingabe fehlen.


    Gruß
    specci48
     
  5. JOTHA

    JOTHA Well-Known Member Licensed User

    @ Filippo: Ich habe jetzt deine Applikation ausprobiert, aber mit meinem Thema (eigene Tastatur anstatt SIP) hat das nicht viel zu tun, die Frage ist also noch offen ...

    Trotzdem Danke für deine Mühe.
     
  6. klaus

    klaus Expert Licensed User

    Hallo JOTHA,

    Das könnte so aussehen, specci48's Vorschläge sind mit drin.
    Es gibt natürlich für jedes Problem mehrere Lösungen.

    Grüsse.
     

    Attached Files:

  7. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo specci48,

    danke für deine Hilfe, damit bin ich schon ein großes Stück weitergekommen.

    genau das soll ja möglich sein. Entweder per Hand eingeben (wenn kein Internet zur Verfügung steht - oder zu teuer ist), oder übers Internet den Wert automatisch beziehen.

    Daraus resultiert die nächste Frage: Wie mache ich das, wenn ich die Tastatur auch im Feld "Kurs" anwenden will? Generiere ich dann einen neuen Code extra für dieses Feld?

    Dafür habe ich dann das folgende gemacht:
    Code:
    '------------------------------------------------------
    ' Feld leeren, wenn auf in das Feld "DevisenWert1" geklickt wird
    '------------------------------------------------------
    Sub DevisenWert1_GotFocus
          DevisenWert1.Text = 
    ""
    End Sub
    Das "spart" mir dann den Platz für eine "C-Taste".
     
  8. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo Klaus,

    ... ihr seid ja mit euren Antworten schneller wie ich mit dem Ausprobieren ...
    ... jetzt öffne ich erstmal deinen Vorschlag und dann melde ich mich wieder ...
     
  9. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo Klaus,

    deine Lösung ist bereits perfekt! Vielen Dank!

    Jetzt muß ich nur noch herausfinden, wie ich die Devisenkurse über das Internet automatisch beziehe.

    1) Weiß jemand eine Internet-Adresse, wo das automatisch und kostenlos geht?
    2) An der Lösung, wie ich ins Internet komme und die Daten "abhole" arbeite ich schon, Hilfe ist aber sehr gerne wilkommen!
     
  10. Filippo

    Filippo Expert Licensed User

    Hallo JOTHA,

    für das was ich mache reicht mir voll und ganz.

    für die eigene Tastatur nicht aber für eine korrekte Eingabe! Den man kann definieren ob in eine Textbox nur Buchstaben, nur Integer-Zahlen oder nur Decimal-Zahlen erlaubt sind.

    Ciao,
    Filippo
     
  11. specci48

    specci48 Well-Known Member Licensed User

    Hallo Klaus,

    eine Frage:
    Warum hast Du bei meinem Beispiel aus jedem
    Code:
    Sender.Text
    ein
    Code:
    StrAt(Sender,12)
    genacht :confused:

    Somit
    - musst Du nun Komma und Zahlen unterscheiden
    - kann man weitere Buttons nur schwer ergänzen, da man diese dann auch wieder einzeln unterscheiden muss

    Außerdem bin ich mir nicht sicher, ob der Zugriff über Sender.Text nicht schneller wäre...


    Gruß
    specci48
     
  12. JOTHA

    JOTHA Well-Known Member Licensed User

    @Filippo:
    Da hast Du allerdings recht.
    Ich habe für den Fall, daß jemand Buchstaben eingeben sollte, die folgende MsgBox definiert:
    Code:
    If IsNumber(DevisenWert1.Text) = False Then
            
    Msgbox ("Bitte im Betrag nur ZAHLEN eingeben.")
          Kurs.Text = 
    "???"
          DevisenWert1.Text = 
    "???"
    In diesem Fall wird die Fehleingabe durch die Fragezeichen ersetzt.
    Bei Gelegenheit probiere ich aber schon mal deine Lösung aus. Man lernt ja nie aus!

    Danke nochmals für deine Anregung.
     
  13. klaus

    klaus Expert Licensed User

    Hallo specci48,

    Warum ich StrAt(Sender,12) gewählt habe anstatt Sender.Text, weil JOTHA später mit ImageButtons arbeiten will und da vieleicht die Texte nicht mehr drin sind. Solange er mit Buttons arbeitet geht es. Das Komma zu unterscheiden hat den anderen Vorteil dass ich den DevisenWert1.Text mit einem Komma ergänze und eine 2te Variable mit einem Punkt für die Rechnungen, kam mir einfacher vor als eine 2te Konvertierungs Routine Komma-Punkt.

    Grüsse,
     
  14. specci48

    specci48 Well-Known Member Licensed User

    Ups, dieser Umstand ist mir irgendwie entfallen. Gut, wenn wenigstens einer hier aufpaßt... ;)

    Gruß
    specci48
     
  15. klaus

    klaus Expert Licensed User

    Das ist ja das Schöne wenn mehrere mitmachen, das gibt eben interessante Meinungaustausche. Und wie schon angedeutet, es gibt ja immer mehrere Lösungen. Und die optimale Lösung ist immer ein Kompromiss je nach den Bedingungen die gegeben sind oder die man sich gibt.

    Beste Grüsse.
     
  16. klaus

    klaus Expert Licensed User

  17. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo Klaus,

    vielen Dank für deinen Hinweis ...
    ... leider kommt aber bei der Ausführung des Programms die folgende Meldung:
    Das Ganze auf dem Desktop (mit aktiver Internetverbindung) und auch auf dem PPC (ebenfalls mit aktiver Internetverbindung). :confused:
     
  18. klaus

    klaus Expert Licensed User

  19. JOTHA

    JOTHA Well-Known Member Licensed User

    Das habe ich mir schon gedacht und an Erel die gleiche Frage gestellt (ob es evtl. an Version 6.5 liegt?).
     
  20. JOTHA

    JOTHA Well-Known Member Licensed User

    Zusatzfrage: Wie kann ich die Tastatur woanders verwenden?

    Hallo erstmal ...

    Wie kann ich die Tastatur woanders verwenden?

    Ich habe zwar in schon einiges hier verstreut im Forum gelesen, aber mit "change parent" funktioniert das bei mir irgendwie nicht.

    Ich habe jetzt schon mit "kopieren", "doppelt öffnen", "umbenennen + kopieren", "change parent" u.s.w. schon so viel Zeit investiert, da hätte ich die Tastatur schon 10 mal von Hand neu geschrieben und zusammengstellt. :sign0148:

    :confused:
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice