有谁能告诉我如何在TLabelEdit
中显示计算,为什么我不能进行数学计算?我收录了<math.h>
。
void __fastcall TForm1::LabelEdit1(TObject *Sender)
{
float h;
if (yRed == 90) {
h = 160*4.4/(2*xRed*tan39 - 160*tan39 + 160*tan40) //cannot compile due to error
Height->SubLabel( h ); //Is this how you write it??????
}
}
请建议。
答案 0 :(得分:0)
tan
是math.h
中的一项功能。你称之为任何其他功能。你不只要把号码放在名字后面。
另请注意,棕褐色适用于弧度,而非度数,因此您可能不需要值39和40。
(另外,强烈考虑从Turbo-C ++迁移 - 它是一个非常古老且支持不足的编译器)
答案 1 :(得分:0)
如另一个答案所述,tan
是math.h
中的函数,因此您需要#include
并将其称为函数,因此tan(angle)
。注意角度以弧度[rad]
为单位,因此您需要从度数转换!
有两种方法可以将内容写入可视化组件。使用Caption
和Text
属性。标签,按钮,表格等具有Caption
,编辑框,备忘录等...具有Text
。它们是字符串,因此您需要将数字打印为字符串(您可以直接将int,float,double,...
分配给它,但是sprintf
更好,因为您可以控制格式)。这是我所看到的样子:
#include <math.h>
const float deg=M_PI/180.0;
const int xRed=???;
const int yRed=???;
void __fastcall TForm1::LabelEdit1(TObject *Sender)
{
float h;
if (yRed == 90)
{
h = (160.0*4.4*tan(39.0*deg)/(2.0*float(xRed)))
- (160.0*tan(39.0*deg))
+ (160.0*tan(40.0*deg));
LabelEdit1->Caption=AnsiString().sprintf("h = %.3f",h);
}
}
顺便说一句。对于具有Canvas
的可视组件(如Form,PaintBox等),您可以使用以下命令直接编写文本:
Canvas->TextOutA(x,y,"text");