ich habe seit einigen Stunden das gleich Problem,weswegen ich auch nicht weiter komme.
Ich habe eine Variable ,welche nach jedem Button-Click +1 addiert werden soll.
Aufgrund dieser Variable a , basieren 2 Prozeduren,eine für a=0 , die andere für a<0.
Es geht hierbei um die Rickmannsche MIschungstemperatur.
Zudem benötige ich noch die Anweisung für
36<Tm<40 , ich ahbe es mit "and" und "or" probiert,bei beiden kommen die gleichen Fehlermeldungen.
Die Funktion in der Unit"Funktionen" ist komplett funktionstüchtig.
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
Buttons,Funktionen;
type
{ TForm1 }
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Label10: TLabel;
Label11: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Edit_M1: TEdit;
Edit_Kalt: TEdit;
Edit_M2: TEdit;
Edit_T1: TEdit;
Edit_T2: TEdit;
Edit_Tm: TEdit;
Edit_Mges: TEdit;
Edit_Rest: TEdit;
Edit_Warm: TEdit;
Edit_A: TEdit;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
M1,M2 : real ;
T1,T2 : real ;
const
ke=273.15 ;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
TM : real ;
Mges : real ;
W : real;
K: real ;
Rest : real ;
a :integer;
begin
a:=a+1 ;
edit_a.text:=FloatToStr(a);
if a=0
then
begin
M1:=StrToFloat(Edit_M1.text);
M2:=StrToFloat(Edit_M2.text);
T1:=Strtofloat(Edit_T1.text);
T2:=Strtofloat(Edit_T2.text);
if 0<T1 // hier wird das 0<T1<100 und 0<T2<100 benötigt
then
begin
Edit1.Text:='Bitte nur flüssiges Wasser nehmen' ;
end
else
begin
T1:=T1+KE ;
T2:=T2+KE ;
TM:=Mischungstemperatur(T1,T2,M1,M2);
Mges:=m1+M2 ;
TM:=TM-KE ;
Inc(a) ;
Rest:=1500-Mges ;
if Mges<1500 // zudem wird hier auch noch 36<TM<40 benötigt
then
begin
Edit_TM.Text:= FloatToStr(Tm);
Edit_Mges.text:=FloatToStr(Mges);
Edit1.Text:='Noch im Spiel';
Edit_A.Text:=FloattoStr(A);
Edit_Rest.text:=FloatToStr(rest);
end
else
begin
Edit1.Text:='Spiel verloren, die Badewanne läuft über ';
end;
end;
end;
if a>0
then
begin
M1:=StrToFloat(Edit_M1.text);
M2:=StrToFloat(Edit_Mges.text);
T1:=Strtofloat(Edit_T1.text);
T2:=Strtofloat(Edit_TM.text);
T1:=T1+KE ;
T2:=T2+KE ;
TM:=Mischungstemperatur(T1,T2,M1,M2);
Mges:=m1+M2 ;
TM:=TM-KE ;
Rest:=1500-Mges ;
if Mges<1500
then
begin
Edit_TM.Text:= FloatToStr(Tm);
Edit_Mges.text:=FloatToStr(Mges);
Edit1.Text:='Noch im Spiel';
Edit_A.Text:=FloattoStr(A);
Edit_Rest.text:=FloatToStr(rest);
end
else
Edit1.Text:='Spiel verloren,Badewanne läuft über' ;
end;
end;
end.