AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Leeres Feld ohne "ShowMessage...."

Ein Thema von Andre_Schmidt · begonnen am 9. Aug 2006 · letzter Beitrag vom 9. Aug 2006
Antwort Antwort
Andre_Schmidt

Registriert seit: 9. Aug 2006
9 Beiträge
 
#1

Leeres Feld ohne "ShowMessage...."

  Alt 9. Aug 2006, 12:47
Hallo Leute

Hab mich mal mit Delphi (Borland Studio 2006) versucht und irgendwie bekomm ich es nicht hin, dass ein Feld wo ich (im moment) keinen Wert eintrage, mit z.B. einer Null zu belegen.

Es kommt immer nur die Fehlermeldung:
"Edit1 is not a valid floating point value"

Ich hoffe es kann mir jemand helfen!


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c, x: Real;

begin
{Einlesen der Variablen}
a := StrToFloat(Edit1.Text);
b := StrToFloat(Edit2.Text);

{Berechnung}
c := b-a;
x := 5*(c);

{Ausgabe der Ergebnisse}

Edit3.Text := FloatToStr(c);
Edit4.Text := FloatToStr(x);

end;

{Programm beenden}
procedure TForm1.ButtonClosedClick(Sender: TObject);
begin
close;
end;

end.

Mfg Andre
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Leeres Feld ohne "ShowMessage...."

  Alt 9. Aug 2006, 12:51
Nimm am besten Delphi-Referenz durchsuchenStrToFloatDef statt Delphi-Referenz durchsuchenStrToFloat
Bei dieser Funktion kannst du als 2. Parameter einen Wert angeben, der zurückgegeben wird, wenn der String kein valides Float ist.

Delphi-Quellcode:
{Einlesen der Variablen}
a := StrToFloatDef(Edit1.Text, 0);
b := StrToFloatDef(Edit2.Text, 0);
Oliver Hanappi
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Leeres Feld ohne "ShowMessage...."

  Alt 9. Aug 2006, 13:09
entweder prüfst Du ab, ob in Edit1 und Edit2 was eingegeben wurde und ob es sich um eine Zahl handelt
Delphi-Quellcode:
if (Edit1.Text <> '') AND (isNumber(Edit1.Text)) then
begin
end;
oder Du machst einen try..except um die Zeilen mit StrToFloat.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Leeres Feld ohne "ShowMessage...."

  Alt 9. Aug 2006, 13:13
oder du machst:
StrToFloat('0'+Edit1.Text); aber das iss sauhässlich
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#5

Re: Leeres Feld ohne "ShowMessage...."

  Alt 9. Aug 2006, 13:54
Es handelt sich um ein Grundproblem dieser Delphi-Funktionen: StrToInt, StrToFloat usw. liefern immer einen Fehler (d.h. Exception), wenn der gegebene String dem gewünschten Zahlentyp nicht entspricht.

Deshalb muss man dieses Problem immer abfangen:

1. Variante
Zitat von RavenIV:
entweder prüfst Du ab, ob in Edit1 und Edit2 was eingegeben wurde und ob es sich um eine Zahl handelt
Dabei gibst Du ggf. den gewünschten Ersatzwert an:
Delphi-Quellcode:
if (Edit1.Text <> '') AND (isNumber(Edit1.Text))
then a := StrToFloat(Edit1.Text)
else a := 0;
2. Variante
Zitat von RavenIV:
oder Du machst einen try..except um die Zeilen mit StrToFloat.
Delphi-Quellcode:
try
  a := StrToFloat(Edit1.Text);
except
  a := 0;
end;
3. Variante
Du lässt Dir diese Arbeit von Delphi abnehmen:
Zitat von idontwantaname:
Nimm am besten Delphi-Referenz durchsuchenStrToFloatDef statt Delphi-Referenz durchsuchenStrToFloat
Bei dieser Funktion kannst du als 2. Parameter einen Wert angeben, der zurückgegeben wird, wenn der String kein valides Float ist.

Delphi-Quellcode:
{Einlesen der Variablen}
a := StrToFloatDef(Edit1.Text, 0);
b := StrToFloatDef(Edit2.Text, 0);
Viel Erfolg! Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz