Entwickler-Ecke
Sonstiges (Delphi) - Viele dynamische EditFelder auslesen !
Jagg - Di 03.12.02 14:33
Titel: Viele dynamische EditFelder auslesen !
Hallo !
Ich habe viele Dynamische EditFelder,die ich auslesen will !
Wenn in dem Feld was drin steht,soll er diese Zahl in eine Tabelle reinschreiben !
Überprüfe ich das so :
Quelltext
1: 2: 3: 4: 5: 6:
| if TE[i].Text<>'0' then begin T.Append; T.FieldByName('Wieviel').AsString := TE[i].Text; T.Post; end; |
....es geht aber nicht !
Jagg !
LCS - Di 03.12.02 14:49
Hi
Damit prüfst du ja nicht, ob in dem Feld überhaupt was steht, sondern ob was anderes als '0' drinsteht. Und was passiert wenn der User 'abc' reinschreibt? :? Ausserdem schreibst du leider nicht, was da nicht funktioniert. Mal ein Verbesserungsvorschlag:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| if TE[i].Text<>'' then try x := StrToInt(TE[i].Text]); //Oder StrToFloat usw. try T.Append; T.FieldByName('Wieviel').AsInteger := x; T.Post; except Cancel; end; except on EconvertError do //Fehlermeldung oder Sonstwas end; |
Gruss Lothar
Jagg - Di 03.12.02 14:59
ich habe so :
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| if Key = VK_F3 then begin T.DatabaseName := 'C:\BiBA\Mail\'; T.TableName := 'Bestell.dbf'; T.Open; if TE[i].Text<>'' then begin T.Append; T.FieldByName('Wieviel').AsInteger := StrToInt(TE[i].Text); T.Post; end; Close; end; |
....aber er sagt "kein gültiger Integerwert" !
Jagg !
LCS - Di 03.12.02 15:03
Hi
dann solltest du an der Stelle mal mit dem Debugger prüfen, was tatsächlich in dem Editfeld drinsteht. Ein Problem könnte sein, dass deine Variable i vielleicht gar nicht auf das richtige Feld verweist.
Gruss Lothar
Udontknow - Di 03.12.02 15:03
Hi!
Was soll denn da i bitte sein?
Cu,
Udontknow
Jagg - Di 03.12.02 15:12
ich habs,hab vergessen i zu setzen !
das ist der code :
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| if Key = VK_F3 then begin i := 1; T.DatabaseName := 'C:\BiBA\Mail\'; T.TableName := 'Bestell.dbf'; T.Open; while TE[i].Text<>'' do begin T.Append; T.FieldByName('Wieviel').AsInteger := StrToInt(TE[i].Text); T.Post; inc(i); end; |
Jagg - Di 03.12.02 15:30
das ist besser.... :
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| if Key = VK_F3 then begin T.DatabaseName := 'C:\BiBA\Mail\'; T.TableName := 'Bestell.dbf'; T.Open; for i := 1 to 40 do begin if TE[i].Text<>'' then begin T.Append; T.FieldByName('Wieviel').AsInteger := StrToInt(TE[i].Text); T.Post; end; end; Close; end; |
LCS - Di 03.12.02 15:37
Hi
das beseitigt allerdings immer noch nicht das Problem, wenn in einem Edit mal keine Zahlen drinstehen. Du solltest das auf alle Fälle abfangen, oder von vorneherein die Eingabe in die Felder einschränken.
Gruss Lothar
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!