home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 March / Chip_1999-03_cd.bin / zkuste / delphi / D / MATEM.ARJ / RCHART.ZIP / exmpl-5 / cpp3 / frmMain.cpp next >
Encoding:
C/C++ Source or Header  |  1997-08-24  |  4.7 KB  |  149 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "frmMain.h"
  6. //---------------------------------------------------------------------------
  7. #pragma link "RChart"
  8. #pragma resource "*.dfm"
  9. TForm1 *Form1;
  10. const int FirstYear = 1970;
  11. const int LastYear = 1980;
  12. const double Exprts[LastYear-FirstYear+1] = {10,20,50,75,100,16,-27,-28,3,10,42};
  13. const TColor Colors[LastYear-FirstYear+1] = {clWhite, clBlue, clLime,
  14.                                              clYellow, clTeal, clWhite,
  15.                                              clBlue, clLime, clYellow,
  16.                                              clTeal, clRed};
  17. bool Bar3DOn;
  18. bool Stopped;
  19. //---------------------------------------------------------------------------
  20. __fastcall TForm1::TForm1(TComponent* Owner)
  21.     : TForm(Owner)
  22. {
  23. }
  24. //---------------------------------------------------------------------------
  25. void __fastcall TForm1::DisplayChart (double Hgt, int Depth, int Ang)
  26. {
  27. int i;
  28.  
  29. ExportChart->ClearGraf();
  30. ExportChart->DataColor = clBlack;
  31. if (Bar3DOn == true)
  32.   {
  33.   if (Ang > 90)               // adjust the order of display according to angle }
  34.     {
  35.     for (i=LastYear; i>=FirstYear; i--)
  36.       {
  37.       ExportChart->FillColor = Colors[i-FirstYear];
  38.       ExportChart->Bar3D (i-0.4, 0, i+0.4, Hgt*Exprts[i-FirstYear], Depth, Ang);
  39.       }
  40.     }
  41.   else
  42.     {
  43.     for (i=FirstYear; i<=LastYear; i++)
  44.       {
  45.       ExportChart->FillColor = Colors[i-FirstYear];
  46.       ExportChart->Bar3D (i-0.4, 0, i+0.4, Hgt*Exprts[i-FirstYear], Depth, Ang);
  47.       }
  48.     }
  49.   }
  50. else
  51.   {
  52.   for (i=FirstYear; i<=LastYear; i++)
  53.     {
  54.     ExportChart->FillColor = Colors[i-FirstYear];
  55.     ExportChart->Rectangle (i-0.4, 0, i+0.4, Hgt*Exprts[i-FirstYear]);
  56.     }
  57.   }
  58. ExportChart->ShowGraf();
  59. }
  60. //---------------------------------------------------------------------------
  61. void __fastcall TForm1::BButDoneClick(TObject *Sender)
  62. {
  63. Close();
  64. }
  65. //---------------------------------------------------------------------------
  66. void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X,
  67.     int Y)
  68. {
  69. Screen->Cursor = crDefault;    
  70. }
  71. //---------------------------------------------------------------------------
  72. void __fastcall TForm1::RB3DonClick(TObject *Sender)
  73. {
  74. Bar3DOn = true;
  75. DisplayChart (0.02*(50-SBarHeight->Position), 100-SBarDepth->Position, SBarAngle->Position);
  76. }
  77. //---------------------------------------------------------------------------
  78. void __fastcall TForm1::FormActivate(TObject *Sender)
  79. {
  80. Stopped = false;
  81. Bar3DOn = true;
  82. DisplayChart (0.02*(50-SBarHeight->Position), 100-SBarDepth->Position, SBarAngle->Position);
  83. }
  84. //---------------------------------------------------------------------------
  85. void __fastcall TForm1::BButAutoClick(TObject *Sender)
  86. {
  87. int step;
  88.  
  89. Stopped = false;
  90. BButStop->Enabled = true;
  91. BButDone->Enabled = false;
  92. BButAuto->Enabled = false;
  93. ExportChart->ScaleColor = clBlack;
  94. ExportChart->DataColor = clSilver;
  95. step = 1;
  96. do
  97.   {
  98.   Application->ProcessMessages();
  99.   if (SBarHeight->Position <= 0)
  100.     {
  101.     step = +1;
  102.     }
  103.   if (SBarHeight->Position >= 100)
  104.     {
  105.     step = -1;
  106.     }
  107.   SBarHeight->Position = SBarHeight->Position + step;
  108.   DisplayChart (0.02*(50-SBarHeight->Position), 100-SBarDepth->Position, SBarAngle->Position);
  109.   }
  110. while (Stopped == false);
  111. }
  112. //---------------------------------------------------------------------------
  113. void __fastcall TForm1::BButStopClick(TObject *Sender)
  114. {
  115. Stopped = true;
  116. BButAuto->Enabled = true;
  117. BButStop->Enabled = false;
  118. BButDone->Enabled = true;
  119. }
  120. //---------------------------------------------------------------------------
  121. void __fastcall TForm1::SBarHeightChange(TObject *Sender)
  122. {
  123. DisplayChart (0.02*(50-SBarHeight->Position),
  124.           100-SBarDepth->Position,
  125.               SBarAngle->Position);
  126. }
  127. //---------------------------------------------------------------------------
  128. void __fastcall TForm1::SBarDepthChange(TObject *Sender)
  129. {
  130. DisplayChart (0.02*(50-SBarHeight->Position),
  131.           100-SBarDepth->Position,
  132.               SBarAngle->Position);
  133. }
  134. //---------------------------------------------------------------------------
  135. void __fastcall TForm1::SBarAngleChange(TObject *Sender)
  136. {
  137. DisplayChart (0.02*(50-SBarHeight->Position),
  138.           100-SBarDepth->Position,
  139.               SBarAngle->Position);
  140. }
  141. //---------------------------------------------------------------------------
  142. void __fastcall TForm1::RBRectClick(TObject *Sender)
  143. {
  144. Bar3DOn = false;
  145. DisplayChart (0.02*(50-SBarHeight->Position),
  146.           100-SBarDepth->Position,
  147.               SBarAngle->Position);
  148. }
  149. //---------------------------------------------------------------------------