Schleife um einen TextFieldText auszuwerten ???

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

 

x_to

Betreff: Schleife um einen TextFieldText auszuwerten ???

BeitragDi, Dez 08, 2009 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
dieser code ist schon in einem EventHandler:

Code: [AUSKLAPPEN]

Select WaitEvent()
 Case $401
  Select EventSource()
   Case txt_lvlwidth
    lvl_width = Int(TextFieldText(txt_lvlwidth))*tile_width
    fn_drwmap()
  End Select
End Select 


txt_lvlwidth ist ein Textfield und dem user soll die möglichkeit gegeben werde eine reele zahl einzugeben.
mit einstelligen ziffern klappt es ja...das problem ist, daß hinter einem tastendruck gleich die funktion fn_drwmap() ausgeführt wird.

wie kann ich das problem lösen, daß das field erst ausgewertet wird, wenn die eingabe beendet ist ?

am liebsten wäre mir per Enter/Return taste oder noch besser, wenn das Field nicht mehr aktiv ist.

ich habe zwar schon an EventData() gedacht, aber komme ich irgendwie nicht klar..Sad

das wurgel

BeitragDi, Dez 08, 2009 22:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit diesem Befehl kannst du ein HotKeyEvent für die Enter-Taste machen:
HotKeyEvent
1 ist ungefähr 3

Silver_Knee

BeitragDi, Dez 08, 2009 23:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder einen Button (CreateButton Style 4), der auf die Enter Taste anspringt.

oder eine timervariable die bei jedem Tastendruck auf Millisecs()+1000 (eine sekunde wartezeit) gesetzt wird und so das feld erst eine Sekunde nach dem letzten Tastendruck analysiert [Dann aber Waittimer n timeout von min. einer sekunde geben.]

Midimaster

BeitragDi, Dez 08, 2009 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
würde nicht das BlitzHilfe-Beispiel genau das für Dich leisten?

Code: [AUSKLAPPEN]
Repeat
   If GetKey() = 27 Then End
   If WaitEvent() = $401 And EventSource() = textfield Then
      If EventData() = 13 Then
         Notify TextFieldText(textfield)
         End
      EndIf
   EndIf
Forever

blackgecko

BeitragMi, Dez 09, 2009 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber nicht mehr in späteren Versionen, da reagieren Textfields nämlich nicht mehr auf Enter. Dann muss man es so machen, wie Silver_Knee sagt, ein Button mit Style 4.
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.
 

x_to

BeitragMi, Dez 09, 2009 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
hmmm...alles gute ratschläge aber ich dachte an eine schleife die vor dem funktionsaufruf läuft um das textfield auszuwerten....

das wurgel

BeitragFr, Dez 11, 2009 0:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Falls du mit auswerten
Code: [AUSKLAPPEN]
lvl_width = Int(TextFieldText(txt_lvlwidth))*tile_width

meinst, das kannst dann dort hin schreiben, wo das Drücken des Buttons mit Style 4 überprüft wird.

Wenn du willst, dass man nur Zahlen eingeben kann, musst du nur bei jeder Eingabe alle Buchstaben des Texfelds durchgehen, die darin vorkommenden Zahlen zu einer Stringvariable hinzufügen und diesen dann per SetGadgetText wieder ins Textfeld schreiben.
1 ist ungefähr 3

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group