Hallo ihr, ich muss in Delphi ein programm schreiben, komm aber nich weiter und hoffe dass ihr mir helfen könnt
Also folgendes:
Ich habe 3 Spinedits; bei Veränderung eines Spinedits sollen sich die anderen entsprechend ändern !
Das erste ist "celsius", das zweite "Réaumur" und das dritte "Fahrenheit"
Sprich, wenn ich im ersten "celsius" ändere, sollen sich "Réaumur" und "fahrenhiet" auch ändern,
wenn ich das zweite "Réaumur" ändere soll sich "celsius" und "fahrenheit" ändern
und wenn ich das dritte, "Fahrenheit" ändere, sollen sich "Celsius" und "Réaumur" auch ändern.
Nun habe ich folgendes Problem:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72:
| unit UTemperatur1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin;
type TForm1 = class(TForm) GroupBox1: TGroupBox; GroupBox2: TGroupBox; GroupBox3: TGroupBox; SpinEdit1: TSpinEdit; SpinEdit2: TSpinEdit; SpinEdit3: TSpinEdit; procedure SpinEdit1Change(Sender: TObject); procedure SpinEdit2Change(Sender: TObject); procedure SpinEdit3Change(Sender: TObject);
private public end;
var Form1: TForm1; celsius:real; reaumur:real; fahrenheit:real;
implementation
{$R *.DFM}
procedure TForm1.SpinEdit1Change(Sender: TObject)
begin celsius:=StrToFloat(spinedit1.text); reaumur:=celsius*0.8; fahrenheit:=celsius*1.8+32; spinedit2.text:=FloatToStrF(reaumur,fffixed,5,0); spinedit3.text:=FloatToStrF(fahrenheit,fffixed,5,0); end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin reaumur:=StrToFloat(spinedit2.text); celsius:=reaumur/0.8; fahrenheit:=celsius*1.8+32; spinedit1.text:=FloatToStrF(celsius,fffixed,5,0); spinedit3.text:=FloatToStrF(fahrenheit,fffixed,5,0); end;
procedure TForm1.SpinEdit3Change(Sender: TObject);
begin fahrenheit:=StrToFloat(spinedit3.text); celsius:=(fahrenheit/1.8 )-32; reaumur:=celsius*0.8; spinedit1.text:=FloatToStrF(celsius,fffixed,5,0); spinedit3.text:=FloatToStrF(reaumur,fffixed,5,0); end;
end. |
Wenn ich nur das 1. und das 2. Spinedit programiere dann läuft das program auch, aber wenn ich das 3. programiere, es dann laufen lasse und auf ein pfeilchen vom Spinedit klick um es zu ändern kommt volgende Fehlermeldung:
"Project PTemperature1.exe raised exception class EStackOverflow with message 'Stack overflow'. Use Step or Run to continue."
und die Zeile 46 ist blau markiert!!!!
So ich hoffe ich hab mein problem gut geschildert.
Kann mir jemand helfen? Das wär echt super
Moderiert von
Christian S.: Delphi-Tags hinzugefügt