P peternmb Well-Known Member Licensed User Longtime User Nov 14, 2012 #1 HAllo, gibt es eine Möglichkeit ein edit so zu konfigureren, dass auch wenn der Inhalt gelöscht wird (das Feld ist dann leer) immer die 0 eingetragen wird. Da ich den Inhalt diverser edit's in einer ini-Datei speichere möchte ich verhindern, dass die App abstürzt wenn das Feld leer ist. Code: Copy Dim edt1 As EditText edt1.Initialize("edt1") edt1.InputType=edt1.INPUT_TYPE_DECIMAL_NUMBERS edt1.TextSize=20 pnl.AddView(edt1, 210dip, 5dip,60dip, 40dip) ... usw ListVar.Add(edt1.Text) File.writelist(File.DirInternal,"configAGZ.ini",ListVar)
HAllo, gibt es eine Möglichkeit ein edit so zu konfigureren, dass auch wenn der Inhalt gelöscht wird (das Feld ist dann leer) immer die 0 eingetragen wird. Da ich den Inhalt diverser edit's in einer ini-Datei speichere möchte ich verhindern, dass die App abstürzt wenn das Feld leer ist. Code: Copy Dim edt1 As EditText edt1.Initialize("edt1") edt1.InputType=edt1.INPUT_TYPE_DECIMAL_NUMBERS edt1.TextSize=20 pnl.AddView(edt1, 210dip, 5dip,60dip, 40dip) ... usw ListVar.Add(edt1.Text) File.writelist(File.DirInternal,"configAGZ.ini",ListVar)
klaus Expert Licensed User Longtime User Nov 14, 2012 #2 Du hast mindest zwei Möglichkeiten: Code: Copy If edt1.Text = "" Then ListVar.Add("0") Else ListVar.Add(edt1.Text) End If Code: Copy Sub edt1_TextChanged (Old As String, New As String) If New = "" Then edt1.Text = 0 edt1.SelectionStart = 1 End If End Sub Diese zweite Möglichkeit hat zwar den Nachteil dass der Benutzer die 0 löschen muss wenn er eine neue Zahl eingeben will. Das könnte man in der Routine aber auch behandeln. Beste Grüsse.
Du hast mindest zwei Möglichkeiten: Code: Copy If edt1.Text = "" Then ListVar.Add("0") Else ListVar.Add(edt1.Text) End If Code: Copy Sub edt1_TextChanged (Old As String, New As String) If New = "" Then edt1.Text = 0 edt1.SelectionStart = 1 End If End Sub Diese zweite Möglichkeit hat zwar den Nachteil dass der Benutzer die 0 löschen muss wenn er eine neue Zahl eingeben will. Das könnte man in der Routine aber auch behandeln. Beste Grüsse.
P peternmb Well-Known Member Licensed User Longtime User Nov 14, 2012 #3 Danke, das mit dem Prüfen ist mir schon klar, habe ich mittlerweile auch gelöst: Code: Copy If IsNumber(edt1a.text) = False Then edt1a.Text = 0 End If Ich wollte nur wissen, ob es evtl. einfacher geht - also schon beim Erstellen des edits festlegen, dass "die Null immer steht". Ich kenne das z.B. von Reportgeneratoren, wo man festlegen kann, dass bei leeren Feldern automatisch eine 0 reinkommt oder auch umgekehrt, dass bei 0 das angezeigte Feld leer bleibt.
Danke, das mit dem Prüfen ist mir schon klar, habe ich mittlerweile auch gelöst: Code: Copy If IsNumber(edt1a.text) = False Then edt1a.Text = 0 End If Ich wollte nur wissen, ob es evtl. einfacher geht - also schon beim Erstellen des edits festlegen, dass "die Null immer steht". Ich kenne das z.B. von Reportgeneratoren, wo man festlegen kann, dass bei leeren Feldern automatisch eine 0 reinkommt oder auch umgekehrt, dass bei 0 das angezeigte Feld leer bleibt.
klaus Expert Licensed User Longtime User Nov 14, 2012 #4 Beim Erstellen kannst Du direkt eine 0 reingeben. Code: Copy Dim edt1 As EditText edt1.Initialize("edt1") edt1.InputType=edt1.INPUT_TYPE_DECIMAL_NUMBERS edt1.TextSize=20 pnl.AddView(edt1, 210dip, 5dip,60dip, 40dip) edt1.Text="0" Beste Grüsse.
Beim Erstellen kannst Du direkt eine 0 reingeben. Code: Copy Dim edt1 As EditText edt1.Initialize("edt1") edt1.InputType=edt1.INPUT_TYPE_DECIMAL_NUMBERS edt1.TextSize=20 pnl.AddView(edt1, 210dip, 5dip,60dip, 40dip) edt1.Text="0" Beste Grüsse.