Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
20. Aug 2009
Die Klammern sind vollkommen uninteressant ... Was ich meinte ist, daß das Ergebnis der in seiner Funktion diesem entspricht:
(wenn ich jetzt richtig gerundet hab)
StrToInt(AktTemp) > StrToInt(Temperatur) then
...
StrToInt(AktTemp)+1 < StrToInt(Temperatur) then
Da die Vergleichswerte eh nur ganzzahlig sind, interessiert im Vergleich auch nur der gerundete ganzahlige Wert.
Die...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
20. Aug 2009
(StrToInt(AktTemp) > StrToInt(Temperatur)+0.1) then
...
(StrToInt(AktTemp)+1.9 < StrToInt(Temperatur)) then
0.1 und 1.9 ? :gruebel:
StrToInt erzeugt doch nur Integer, da haben die Fließkommazahlen dann nicht die Auswirkung, welche geplant ist
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
20. Aug 2009
mir ist hier sogar grad ein Fehler aufgefallen :shock:
das ELSE gehört ja nicht zum ersten IF, sondern zum Zweiten,
also so
if HeatIsOn then
if ActualTemp > RefTemp + THysteresis then HeatIsOn := false
else
if ActualTemp < RefTemp then HeatIsOn := true;
und so kann die Heizung nur ausgeschaltet werden, denn wenn die Heizung schon aus ist, wird hier nix mehr gemacht :nerd:
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
20. Aug 2009
nja, aber zumindestens ist für die Auswertung der aktuelle Zustand von HeatIsOn unwichtig :angel2:
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
20. Aug 2009
wozu muß man da unbedingt wissen, ob es an oder aus ist?
wie es schon richtig gezeigt wurde, reicht dieses doch vollkommen aus:
if ActualTemp > RefTemp + Hysteresis then HeatIsOn := false
else if ActualTemp < RefTemp then HeatIsOn := true;
wobei ich es wohl eher so machen würde und die Schwellenwerte um den gewünschten Sollwert drumrum verteile:
if ActualTemp > RefTemp + (Hysteresis div...