![]() |
Leeres editfeld überspringen /ignorieren
Hi,
ich hab in meinem Programm mehrere editfelder wo werte eingetragen werden, es kann aber durchaus mal vorkommen, dass in ein oder mehrere editfelder nichts eingetragen wird. dann kommt allerdings wenn ich auf den berechnen button klicke eine fehlermeldung: Im Project Project1.exe ist ein Exception der EConvertError aufgetreten. Meldung: " ist kein gültiger Gleitkommawert." Prozeß wurde angehalten. wie also kann ich des editfeld sozusagen überspringen wenn kein wert eingetragen ist? mfg wenn möglich mit code beispiel :duck: |
Re: Leeres editfeld überspringen /ignorieren
überprüfe doch vorher, ob was drin steht.... oder? :?
Delphi-Quellcode:
gefällt mir immer wieder besser ;):
if Edit.Text <> '' then
//steht was drinne
Delphi-Quellcode:
MfG
if not (Edit.Text = '') then
//steht was drinne |
Re: Leeres editfeld überspringen /ignorieren
Zitat:
Also enter den Code so in etwa ab (jetzt in der BerechnenButtonKlick):
Delphi-Quellcode:
if not (edit1.text = '') then
//Befehle |
Re: Leeres editfeld überspringen /ignorieren
@PierreB :
klammern nicht vergessen ;) |
Re: Leeres editfeld überspringen /ignorieren
Zitat:
|
Re: Leeres editfeld überspringen /ignorieren
erstmal danke für die antworten, klappt aber leider noch net so ganz wie ich mir des vorstelle. manchmal klappts aber manchmal komischerweise net, delphi zeigt dann unten an, dass die variablen einszeit, zweizeit und dreizeit nicht intialisiert wurden. die fehlermeldung die dann kommt is auch anders, Meldung:" ungültige Gleitkommaoperation".
geb den code des berechnen buttons mal hier rein( ist aufs wesentliche gekürzt):
Delphi-Quellcode:
begin
if not (ed1stop.Text = '') then einszeit:= strtofloat (ed1stop.text); if not (ed2stop.Text = '') then zweizeit:= strtofloat (ed2stop.text); if not (ed3stop.Text = '') then dreizeit:= strtofloat (ed3stop.text); rundenzahl:= strtoint (edrundenanzahl.text); einsendzeit:= einszeit * rundenzahl + 10 ; zweiendzeit:= zweizeit * rundenzahl + 18 ; dreiendzeit:= dreizeit * rundenzahl + 25 ; edend1.text:= floattostr (einsendzeit); edend2.text:= floattostr (zweiendzeit); edend3.text:= floattostr (dreiendzeit); if (einsendzeit - zweiendzeit)<0 then if (einsendzeit - dreiendzeit) <0 then label8.caption:= ' 1-Stop-Strategie ist am Schnellsten '; if (zweiendzeit - einsendzeit) <0 then if (zweiendzeit - dreiendzeit) <0 then label8.caption:= ' 2-Stop-Strategie ist am Schnellsten '; if (dreiendzeit - einsendzeit) <0 then if (dreiendzeit - zweiendzeit) <0 then label8.caption:= ' 3-Stop-Strategie ist am Schnellsten ' ; end; |
Re: Leeres editfeld überspringen /ignorieren
mich würden mal die variablen deklariationen interessieren...;)
|
Re: Leeres editfeld überspringen /ignorieren
Fließkommazahlen werden nicht mit einem Startwert initialisiert. Wenn du ihnen also keinen Wert zuweist, kann da alles Mögliche drinstehen, eine "ungültige Gleitkommaopertaion" ist da schon im wahrsten Sinne des Wortes vorprogrammiert. Mit welchen Werten willst du denn rechnen, wenn das Edit-Feld nicht ausgefüllt wurde? NaN :lol: ?
Vielleicht ist auch ![]() |
Re: Leeres editfeld überspringen /ignorieren
var einszeit, zweizeit, dreizeit, einsendzeit, zweiendzeit, dreiendzeit : real;
var rundenzahl :integer ; edit: stringtofloatdef gibts bei mir in der delphi hilfe gar net, hab delphi 5 eigentlich will ich dann gar nicht weiterrechnen wenn des feld leer ist, wenn dse net geht mit nem unrealistischem wert wie 999 weiterrechnen. |
Re: Leeres editfeld überspringen /ignorieren
ja da am anfang irgendetwas in den variblen stehen kann, würd ich die halt mal alle nullen, oder wie du das willst auf 999 setzen...
weil so wie jetzt funktioniert das vllt wenn alles ausgefüllt ist. ist jedoch ein feld leer, rechnet der mit IRGENDWAS .. Gruß n0b0dy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz