void __fastcall Tmain_::Button1Click(TObject *Sender)
{
double a,b;
double h1,arfa;
double d,r1,r2,h2,D,t;
try{d=Edit1->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("d值无效", " ", MB_OK);return;}
try{r1=Edit3->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("r1值无效", " ", MB_OK);return;}
try{r2=Edit4->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("r2值无效", " ", MB_OK);return;}
try{h2=Edit5->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("h2值无效", " ", MB_OK);return;}
try{D=Edit6->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("D值无效", " ", MB_OK);return;}
try{t=Edit9->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("t值无效", " ", MB_OK);return;}
try
{
if(d-D>0.000001) {Application->MessageBoxA("翻边孔直径比主筒还大!请重新输入数据计算。", " ", MB_OK);return;}
h1=h2-(D/2-t);
a=d-2.0*(h1-0.43*r1-0.22*t);
arfa=ArcCos((2.0*r2+d)/(2.0*r2+D));
b=3.14*(D-t)/2.0-(D+2.0*r2)*(arfa-sin(arfa))-2.0*h2;
if(a<0.000001||b<0.000001){Application->MessageBoxA("结果太小了!原始数据可能有误,请重新输入数据计算。", " ", MB_OK);return;}
if(b-a>0.000001) {Application->MessageBoxA("短径比长径还大!原始数据可能有误,请重新输入数据计算。", " ", MB_OK);return;}
a=StrToFloat(Format("%8.1f",ARRAYOFCONST((a))));
b=StrToFloat(Format("%8.1f",ARRAYOFCONST((b))));
}
catch(...)
{
{Application->MessageBoxA("原始数据可能有误,计算失败!请重新输入数据计算。", " ", MB_OK);return;}
}
Edit7->Text=a;
Edit8->Text=b;
}
{
double a,b;
double h1,arfa;
double d,r1,r2,h2,D,t;
try{d=Edit1->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("d值无效", " ", MB_OK);return;}
try{r1=Edit3->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("r1值无效", " ", MB_OK);return;}
try{r2=Edit4->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("r2值无效", " ", MB_OK);return;}
try{h2=Edit5->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("h2值无效", " ", MB_OK);return;}
try{D=Edit6->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("D值无效", " ", MB_OK);return;}
try{t=Edit9->Text.Trim().ToDouble();}catch(EConvertError& e){Application->MessageBoxA("t值无效", " ", MB_OK);return;}
try
{
if(d-D>0.000001) {Application->MessageBoxA("翻边孔直径比主筒还大!请重新输入数据计算。", " ", MB_OK);return;}
h1=h2-(D/2-t);
a=d-2.0*(h1-0.43*r1-0.22*t);
arfa=ArcCos((2.0*r2+d)/(2.0*r2+D));
b=3.14*(D-t)/2.0-(D+2.0*r2)*(arfa-sin(arfa))-2.0*h2;
if(a<0.000001||b<0.000001){Application->MessageBoxA("结果太小了!原始数据可能有误,请重新输入数据计算。", " ", MB_OK);return;}
if(b-a>0.000001) {Application->MessageBoxA("短径比长径还大!原始数据可能有误,请重新输入数据计算。", " ", MB_OK);return;}
a=StrToFloat(Format("%8.1f",ARRAYOFCONST((a))));
b=StrToFloat(Format("%8.1f",ARRAYOFCONST((b))));
}
catch(...)
{
{Application->MessageBoxA("原始数据可能有误,计算失败!请重新输入数据计算。", " ", MB_OK);return;}
}
Edit7->Text=a;
Edit8->Text=b;
}