Borland Turbo C ++,事件功能

时间:2011-06-22 02:47:14

标签: c++ turbo-c++

有谁能告诉我如何在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??????

  }
}

请建议。

2 个答案:

答案 0 :(得分:0)

tanmath.h中的一项功能。你称之为任何其他功能。你不只要把号码放在名字后面。

另请注意,棕褐色适用于弧度,而非度数,因此您可能不需要值39和40。

(另外,强烈考虑从Turbo-C ++迁移 - 它是一个非常古老且支持不足的编译器)

答案 1 :(得分:0)

如另一个答案所述,tanmath.h中的函数,因此您需要#include并将其称为函数,因此tan(angle)。注意角度以弧度[rad]为单位,因此您需要从度数转换!

有两种方法可以将内容写入可视化组件。使用CaptionText属性。标签,按钮,表格等具有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");