我正在学习德尔福,由于某些原因,他们使用这种旧语言,但无论如何.我需要构建一个转换Celsius和Fahrenheit的Weather应用程序.
用户必须输入7天天气但这个例子我只想弄清第1天
所以我首先创建单选按钮来选择Celsius和Fahrenheit,然后如果他们选择Celsius我必须将Celsius转换为Fahrenheit并且如果他们选择Fahrenheit我必须将其转换为Celsius.
所以这是我的代码:
var
Celsius, Fahrenheit, Day1 : Double;
begin
Day1 := fedDay1;
Celsius := (Day1 - 32)*5/9;
Fahrenheit := Day1 * 9/5 + 32;
if radCelsius.checked then
lblConvertDay1.Caption := FloatToStrF(Fahrenheit, ffFixed, 15, 2);
else
lblConvertDay1.Caption := FloatToStr(Celsius, ffFixed, 15, 2);
end;
Run Code Online (Sandbox Code Playgroud)
它在fedDay1上给出了一个错误.这是一个浮动旋转编辑
请帮忙
您不能直接将SpinEdit分配给变量.你必须使用该值.
Day1 := fedDay1.Value;
Run Code Online (Sandbox Code Playgroud)
您的代码必须只进行所需的转换,因为Day1它们已经有了其中之一.因此,如果用户输入了摄氏度值,则只需要将摄氏温度转换为华氏度.如果他们输入华氏温度值,您只需要从华氏温度转换为摄氏温度.
var
Day1: Double;
OutVal: Double;
begin
Day1 := fedDay1.Value;
if radCelsius.checked then
OutVal := (9.0 / 5.0) * Day1 + 32 // Cels. entered; convert to Fahrenheit
else
OutVal := (5.0 / 9.0) * (Day1 - 32); // Fahr. entered; convert to Celsius
lblConvertDay1.Caption := FloatToStr(OutVal, ffFixed, 15, 2);
end;
Run Code Online (Sandbox Code Playgroud)
如果你使用的是Delphi的最新版本(Delphi 2007有它们,并且它们可以追溯到Delphi 5),那么该StdConvs单元具有可用于转换的预定义函数:
implementation
uses
StdConvs;
if ...
OutVal := CelsiusToFahrenheit(Day1)
else
OutVal := FahrenheitToCelsius(Day1);
Run Code Online (Sandbox Code Playgroud)