- Open the Geometry project created
when reviewing the property pages
- By selecting the Label and Edit controls from the Standard tab of the Component Palette, design each page as follows:
|
Control |
Name |
Caption/Text |
Glyph |
Label |
|
Side: |
|
Edit |
edtSquareSide |
0.00 |
|
BitBtn |
btnCalcSquare |
Calculate |
Square |
Label |
|
Perimeter: |
|
Edit |
edtSquarePerimeter |
0.00 |
|
Label |
|
Area: |
|
Edit |
edtSquareArea |
0.00 |
|
Label |
|
Length: |
|
Edit |
edtRectLength |
0.00 |
|
Label |
|
Height |
|
Edit |
edtRectHeight |
Height: |
|
BitBtn |
btnCalcRectangle |
Calculate |
Rectangle |
Label |
|
Perimeter |
|
Edit |
edtRectPerimeter |
0.00 |
|
Label |
|
Area: |
|
Edit |
edtRectArea |
0.00 |
|
|
|
Control |
Name |
Caption/Text |
Glyph |
Label |
|
Radius: |
|
Edit |
edtCircleRadius |
0.00 |
|
BitBtn |
btnCalcCircle |
Calculate |
Circle |
Label |
|
Circumference: |
|
Edit |
edtCircleCircumf |
0.00 |
|
Label |
|
Area: |
|
Edit |
edtCircleArea |
0.00 |
|
Label |
|
radius: |
|
Edit |
edtEllipseSRadius |
0.00 |
|
Label |
|
Radius: |
|
Edit |
edtEllipseLRadius |
0.00 |
|
BitBtn |
btnCalcEllipse |
Calculate |
Ellipse |
Label |
|
Circumference: |
|
Edit |
edtEllipseCircumf |
0.00 |
|
Label |
|
Area: |
|
Edit |
edtEllipseArea |
0.00 |
|
|
|
Control |
Name |
Caption/Text |
Glyph |
Label |
|
Side: |
|
Edit |
edtCubeSide |
0.00 |
|
BitBtn |
btnCalcCube |
Calculate |
Cube |
Label |
|
Area: |
|
Edit |
edtCubeArea |
0.00 |
|
Label |
|
Volume: |
|
Edit |
edtCubeVolume |
0.00 |
|
Label |
|
Base: |
|
Edit |
edtBoxBase |
0.00 |
|
Label |
|
Height: |
|
Edit |
edtBoxHeight |
0.00 |
|
Label |
|
Width: |
|
Edit |
edtBoxWidth |
0.00 |
|
BitBtn |
btnCalcBox |
Calculate |
Box |
Label |
|
Area: |
|
Edit |
edtBoxArea |
0.00 |
|
Label |
|
Volume: |
|
Edit |
edtBoxVolume |
0.00 |
|
|
- Display the Quadrilateral tab and double-click the top Calculate button
- Implement its event as follows:
//---------------------------------------------------------------------------
void __fastcall TForm1::btnCalcSquareClick(TObject *Sender)
{
double side, perimeter, area;
try {
side = this->edtSquareSide->Text.ToDouble();
perimeter = side * 4;
area = side * side;
this->edtSquarePerimeter->Text = FloatToStr(perimeter);
this->edtSquareArea->Text = FloatToStr(area);
}
catch(EConvertError *err)
{
ShowMessage("The value you provided is an invalid number.");
this->edtSquareSide->Text = "0.00";
this->edtSquarePerimeter->Text = "0.00";
this->edtSquareArea->Text = "0.00";
}
}
//---------------------------------------------------------------------------
|
- Return to the Quadrilateral property page and double-click the bottom
Calculate button
- Implement its event as follows:
//---------------------------------------------------------------------------
void __fastcall TForm1::btnCalcRectangleClick(TObject *Sender)
{
double length, height, perimeter, area;
try {
length = this->edtRectLength->Text.ToDouble();
height = this->edtRectHeight->Text.ToDouble();
perimeter = (length + height) * 2;
area = length * height;
this->edtRectPerimeter->Text = FloatToStr(perimeter);
this->edtRectArea->Text = FloatToStr(area);
}
catch(EConvertError *err)
{
ShowMessage("Incorrect value(s). Please try again.");
this->edtRectPerimeter->Text = "0.00";
this->edtRectArea->Text = "0.00";
}
}
//---------------------------------------------------------------------------
|
- Return to the form and click the Circular tab
- Double-click the top Calculate button and implement its event as follows:
const double myPI = 3.14159;
//---------------------------------------------------------------------------
void __fastcall TForm1::btnCalcCircleClick(TObject *Sender)
{
double radius, circumference, area;
try {
radius = this->edtCircleRadius->Text.ToDouble();
circumference = radius * 2 * myPI;
area = radius * radius * myPI;
this->edtCircleCircumf->Text = FloatToStr(circumference);
this->edtCircleArea->Text = FloatToStr(area);
}
catch(EConvertError *err)
{
ShowMessage("The value you provided for the radius is incorrect.");
this->edtCircleRadius->Text = "0.00";
this->edtCircleCircumf->Text = "0.00";
this->edtCircleArea->Text = "0.00";
}
}
//---------------------------------------------------------------------------
|
- Return to the Circular property page and double-click the bottom Calculate
button
- Implement its event as follows:
//---------------------------------------------------------------------------
void __fastcall TForm1::edtCalcEllipseClick(TObject *Sender)
{
double smallRadius, largeRadius, circumference, area;
try {
smallRadius = this->edtEllipseSRadius->Text.ToDouble();
largeRadius = this->edtEllipseLRadius->Text.ToDouble();
circumference = (smallRadius + largeRadius) * myPI;
area = smallRadius * largeRadius * myPI;
this->edtEllipseCircumf->Text = FloatToStr(circumference);
this->edtEllipseArea->Text = FloatToStr(area);
}
catch(EConvertError *err)
{
ShowMessage("Invalid Value(s): Please try again.");
this->edtEllipseCircumf->Text = "0.00";
this->edtEllipseArea->Text = "0.00";
}
}
//---------------------------------------------------------------------------
|
- Return to the form and click the 3-Dimensional tab
- Double-click the top Calculate button and implement its event as follows:
//---------------------------------------------------------------------------
void __fastcall TForm1::edtCalcCubeClick(TObject *Sender)
{
double side, area, volume;
try {
side = this->edtCubeSide->Text.ToDouble();
area = side * side * 6;
volume = side * side * side;
this->edtCubeArea->Text = FloatToStr(area);
this->edtCubeVolume->Text = FloatToStr(volume);
}
catch(EConvertError *err)
{
ShowMessage("The value you provided for the Side is invalid.");
this->edtCubeSide->Text = "0.00";
this->edtCubeArea->Text = "0.00";
this->edtCubeVolume->Text = "0.00";
}
}
//---------------------------------------------------------------------------
|
- Return to the 3-Dimensional property page and double-click the bottom
Calculate button
- Implement its event as follows:
//---------------------------------------------------------------------------
void __fastcall TForm1::btnCalcBoxClick(TObject *Sender)
{
double base, height, width, area, volume;
try {
base = this->edtBoxBase->Text.ToDouble();
height = this->edtBoxHeight->Text.ToDouble();
width = this->edtBoxWidth->Text.ToDouble();
area = 2 * ((base*height) + (height*width) + (base*width));
volume = base * height * width;
this->edtBoxArea->Text = FloatToStr(area);
this->edtBoxVolume->Text = FloatToStr(volume);
}
catch(EConvertError *err)
{
ShowMessage("Invalid Value(s): Please try again.");
this->edtBoxArea->Text = "0.00";
this->edtBoxVolume->Text = "0.00";
}
}
//---------------------------------------------------------------------------
|
- Execute the application and test each geometric figure
- Close the form and return to your programming environment
|
|