Textbox-Eingabekontrolle

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Nooby

Betreff: Textbox-Eingabekontrolle

BeitragDi, Jul 24, 2007 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Nochn Thema...
Ich habe in BlitzPlus eine Textbox, in die eine maximal 7-stellige Zahl eingegeben werden soll. Damit ich mit einer richtigen Eingabe weiterrechne, könnte ich diese kontrollieren. Mir wäre es jedoch lieber, wenn es gar nicht erst zu einer falschen Eingabe kommt. Ich habe schon alle Zeichen, die keine Ziffer sind mit diesem Code rausgeschmissen:
Code: [AUSKLAPPEN]
If Int(TextFieldText(money_textfield)) <> TextFieldText(money_textfield)
 SetGadgetText(money_textfield, altergeldtext$)
Else
 altergeldtext$ = TextFieldText(money_textfield)
Endif

Dabei nervt nur, dass der Cursor trotzdem weiterrückt.

Nun möchte ich gerne, dass wenn eine Ziffer hinzugefügt wird, das Feld aber schon voll ist, die nachfolgende Ziffer überschrieben wird (das entspräche der "Einfg"-Taste), oder, wenn die neue Ziffer auch die letzte (achte) ist, sie selber dran glauben muss. Dazu müsste ich nach meiner überlegung jedoch wissen, wo sich der Cursor befindet.

Kann man also die Position des Cursors irgendwie beeinflussen und diese feststellen, oder stößt man hier an eine Grenze von BlitzBasic?

EDIT:
Hilft mir "TextArea"?
DAS PERPETUOMOBILE!!!
http://www.sax.de/~stalker/pad/199801/
 

ETsoftware

BeitragDi, Jul 24, 2007 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Lies mit TextFieldText das TextField aus und überprüfe mit Len(string$) wie viele Zeichen sich in der Zeichenkette befinden. >7 Then SetGadgetText textfield,Left(TextFieldText(textfield),7)
Code: [AUSKLAPPEN]
If Len(TextFieldtext$(money_textfield))>7 Then
 SetGadgetText money_textfield,Left(TextFieldText(money_textfield),7)
EndIf

Dabei wird die Position des Cursors nicht berücksichtigt, das letzte Zeichen wird gelöscht. Nicht getestet!

Mfg
ETsoftware
ETsoftware 2007

Nooby

BeitragDi, Jul 24, 2007 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
^^Genau diesen Code hatte ich schon verwendet, aber ich suche jetzt nach was besserem, was ich oben beschrieben habe.
DAS PERPETUOMOBILE!!!
http://www.sax.de/~stalker/pad/199801/

Silver_Knee

BeitragDi, Jul 24, 2007 21:10
Antworten mit Zitat
Benutzer-Profile anzeigen
du kannst ja den text vor dem eintippen in ner variable speichern und mit dem text nach dem eintippen vergleichen dort wo ein unterschied ist wurde ein zeichen hinzugefügt.

Vorher-Code: [AUSKLAPPEN]
123456789

Nacher-Code: [AUSKLAPPEN]
123A456789

mit ner for next schleife einzelne zeichen auf gleichheit überprüfen
bei dem ersten unterschied alle zeichen samt dem unterschiedlichen (teil1) seperat von dem rest(teil2) in variablen speichern
von dem teil2 das erste zeichen löschen(mittels Mid/Right)

Code: [AUSKLAPPEN]
neuertext=teil1+teil2

Nooby

BeitragDi, Jul 24, 2007 21:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hatte ich zuerst auch gedacht, aber:
Ursprünglicher Inhalt: 1234567
Veränderter Inhalt: 12345667

Und wo ist die Änderung? Die erste, oder die zweite 6?
DAS PERPETUOMOBILE!!!
http://www.sax.de/~stalker/pad/199801/

Nooby

BeitragDo, Jul 26, 2007 18:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat keiner 'ne Idee? Crying or Very sad
DAS PERPETUOMOBILE!!!
http://www.sax.de/~stalker/pad/199801/
 

Dreamora

BeitragDo, Jul 26, 2007 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du keine hast, haben wir auch keine, denn du musst spezifizieren wie in welchen fällen vorzugehen ist. Wir können dir nicht bei Programmdesign problemen für deine "Ideen" helfen, nur bei code problemen beim umsetzen fürchte ich
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group