![]() |
Fehler: Exception der Klasse EConvertError
Hallo!
Ich bin noch recht neu hier und auch in Delphi und habe schon die ersten Probs, wo ich keine Ahnung hab wo das her kommt. Wenn ich in ein paar Editfelder Werte eingebe, im Programm selbst was rechnen lasse und das Ergebnis dann in einem anderen Editfeld wieder ausgeben lassen will, kommt diese Fehlermeldung: Zitat:
Thx schonmal... Gruß BlackdragoN |
Re: Fehler: Exception der Klasse EConvertError
Du versuchst einen leeren String (wahrscheinlich mit StrtoFloat) in einen Gleitkommawert umzuwandeln, was natürlich schiefläuft.
|
Re: Fehler: Exception der Klasse EConvertError
Hmm... aber verstehe nicht, warum der String leer sein soll?
Ich lasse halt was ausrechnen, was dann über strtofloat in einem Editfeld ausgegeben wird. Bei strtoint kommt auch n Fehler, nur halt keiner mit Gleitkommawert. |
Re: Fehler: Exception der Klasse EConvertError
Zeig mal deinen Code. Wahrscheinlich ist das Eingabefeld zu dem Zeitpunkt, als die Funktion aufgerufen wird, leer.
|
Re: Fehler: Exception der Klasse EConvertError
Delphi-Quellcode:
In der Grundstruktur ist das der selbe code wie im eigentlichen Prog, blos halt mit weniger Editfeldern und Variablen. Kommt aber der selbe Fehler bei raus.
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d:integer; e:real; begin a:=100; b:=50; edit1.text:=inttostr(c); edit2.Text:=inttostr(d); e:=(a*c)+(b*d); e:=strtofloat(edit3.text); end; end. [edit=Admin]Delphi-Tags eingefügt. Mfg, Daniel[/edit] |
Re: Fehler: Exception der Klasse EConvertError
Ähm, was hast du überhaupt vor? Ich schreib dir mal, was bei deinem Code passiert.
Delphi-Quellcode:
Für mich sieht das aus, als hättest du Schwierigkeiten mit dem Zuweisungsoperator.
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d:integer; f:real; begin a:=100; //a wird der Wert 100 zugewiesen b:=50; //b wird der Wert 50 zugewiesen edit1.text:=inttostr(c); //c wird in einen String umgewandelt als Text eines Edits gesetzt (obwohl undefiniert) edit2.Text:=inttostr(d); //d wird in einen String umgewandelt als Text eines Edits gesetzt (obwohl undefiniert) //was ist e? e:=(a*c)+(b*d); //c und d sind undefiniert, wahrscheinlich 0. Also e=0 e:=strtofloat(edit3.text); //der Text des Edits wird in einen Float umgewandelt und e zugewiesen end; Das, was rechts von ihm steht, wird der linken Seite zugewiesen, nicht umgekehrt! |
Re: Fehler: Exception der Klasse EConvertError
Hi!
Ein Tipp vorneweg: Wenn du deinen Code mit [.delphi][/.delphi] (ohne die Punkte) umschließt, wird er richtig formatiert! Zu deinem Problem: Wo werden denn c und d zugewiesen, die sind ja noch uninitalisiert! Und was macht die Funktion eigentlich? Du weißt edit1 den wert von c zu (was auch immer der ist) Du weißt edit2 den wert von d zu (was auch immer der ist) dann wird e etwas zugewiesen (c+d sind immer noch undefiniert :? ) Und dann weißt du e erneut etwas zu (diesmal den wert aus edit3) Also brauchst du doch die Berechnung von e vorher nicht, oder versteh ich das falsch? Der eigentliche Fehler liegt wohl daran, dass in edit3.text zu der Zeit des Ausführens der Funktion keine Kommazahl drin ist! ciao fkerber [Edit]Da war ich wohl zu langsam :cry: [/Edit] |
Re: Fehler: Exception der Klasse EConvertError
sorry... e = f .. hab mich nur vorhin beim editieren verschrieben oO
habs mal dementsprechend im code geändert, wie es eigentlich sein sollte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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