Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Ungültige Gleitkommaoperation&Variable nicht initialisiert
Bioman - So 30.08.09 20:13
Titel: Ungültige Gleitkommaoperation&Variable nicht initialisiert
Hallo
ich habe folgende Probleme :
Ich häng an einem Programm dran, welches mir als eine Art Rechner dienen soll. Teilweise läuft es auch, aber als ich vorhin weiterprogrammiert hab, kamen die Fehlermeldungen, dass 3 meiner Variablen (metall, kristall, deuterium) nicht initialisiert wurden und dass ich irgendwie eine ungültige Gleitkommaoperation hätte, die letzte Meldung kommt jedoch erst beim ausführen der .exe
Mein quellcode :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure TForm1.Button10Click(Sender: TObject); var stufe,metall,kristall,deuterium : real; begin stufe := strtofloat (edit10.text); if RadioButton5.checked = true then metall := (power(1.5,stufe)*40); if RadioButton5.checked = true then kristall := (power(1.5,stufe)*10); if Radiobutton6.Checked = true then metall := (power(1.6,stufe)*30); if RadioButton6.checked = true then kristall := (power(1.6,stufe)*15); if Radiobutton7.checked = true then metall := (power(1.5,stufe)*150); if RadioButton7.checked = true then kristall := (power(1.5,stufe)*50);
edit7.text := floattostr (trunc(metall)); edit8.Text := floattostr (trunc(kristall)); edit9.Text := floattostr (trunc(deuterium)) end; |
ich war schon so weit, dass die Anweisungen liefen von radiobutton 5-7, als ich dann jedoch weitergeschrieben hatte, kamen die fehlermeldungen oben, also löschte ich das neu geschriebene wieder und versuchte es nochmal aber nun waren die fehlermeldungen auch hier.
Ich hab aber auch noch eine Frage :
Wie bekomm ich es hin, dass ich unter eine if-funktion 2 oder 3 anweisungen bekomme ?? mit einfach 2 stück hinschreiben klappts nicht so wirklich
Danke für eure Hilfe
Bioman - So 30.08.09 21:07
Okay..erstmal danke...das einzige was mir nun wirklich noch probleme macht, ist die sache mit der ungültigen gleitkomma operation
Folgende Fehlermeldung bekomme ich :
Im Projekt Project3.exe ist eine Exception der Klasse EInvalidOp aufgetreten. Meldung :'Ungültige Gleitkommaoperation'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| program Project3;
uses Forms, Unit1 in 'Unit1.pas' , Unit2 in 'Unit2.pas' , Unit3 in 'Unit3.pas' ;
{$R *.res}
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm3, Form3); Application.Run; end. |
Der Fehler wird in dem Project.dpr angezeigt bei dem "end" (einmal war es sogar "Begin")
Ich check garnichts mehr...
thx für die hilfe
platzwart - So 30.08.09 21:08
Eventuell irgendwo eine Division mit einer Variablen? Wenn die 0 ist gibt es einen Fehler...
Bioman - So 30.08.09 21:41
ne...der fehler muss ganz gewiss in genau der procedur sein, weil die anderen alle funktionieren...ich hab auch mal sicherheitshalber die werte alle auf 1 gesetzt aber es passiert halt immer bei dem klick auf den einen button der für die procedur zuständig ist...also die die ganz oben von mir gepostet wurde..wenn ihr wollt geb ich auch gern den ganzen quellcode raus.
thx
platzwart - So 30.08.09 21:49
OK, wenn du dir so sicher bist, dass der Fehler in dieser Prozedur verursacht wird, kannst du folgendes probieren:
Kommentiere alle Zeilen aus. Dann starten und sehen, ob der Fehler auftritt. Dann machst du das Kommentieren Zeile für Zeile rückgängig und testest wieder. Dann weißt du schließlich, in welcher Zeile der Fehler auftritt.
Das ganze kannst du natürlich auch mit Hilfe der schrittweisen Ausführung bzw. mit Haltepunkten ebenso realisieren.
jaenicke - So 30.08.09 21:53
Der Fehler wird vermutlich bei der Ausgabe geschehen, wenn der Wert der entsprechenden Variable nicht zugewiesen wurde und einen seltsamen Wert hat. Denn wenn ansonsten die Werte in Ordnung sind, kann vorher der Fehler nicht auftreten.
Aber mit einem Haltepunkt und Debuggen, hättest du die passende Zeile schon längst... :roll:
Bioman - Do 03.09.09 16:17
Also, mithilfe meines Infolehrers kamen wir auf den Fehler, auch wenn er selbst diesen nicht direkt sah
er war in der edit festlegung, da ich dort floattostr stehen hatte aber eig. musste dort inttostr hin.
Moderiert von
Narses: Weitere Frage entfernt.
Narses - Do 03.09.09 16:30
Moin!
Markierst du den Thread noch entsprechend, wenn dein Problem gelöst ist? Danke. ;)
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!