home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 March / Chip_1999-03_cd.bin / zkuste / delphi / D / MATEM.ARJ / RCHART.ZIP / exmpl-1 / cpp1 / zoomit.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-23  |  4.5 KB  |  136 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "zoomit.h"
  6. #include "math.h"
  7. #include "logwarn.h"
  8. //---------------------------------------------------------------------------
  9. #pragma link "RChart"
  10. #pragma resource "*.dfm"
  11. TForm1 *Form1;
  12. const int NumVal = 300;
  13. //---------------------------------------------------------------------------
  14. __fastcall TForm1::TForm1(TComponent* Owner)
  15.     : TForm(Owner)
  16. {
  17. }
  18. //---------------------------------------------------------------------------
  19. void __fastcall TForm1::FormActivate(TObject *Sender)
  20. {
  21. int i;
  22.  
  23. RBZoomPanOff->Checked = true;
  24. PnlHints->Caption = "Select from Zoom Mode box to use interactive zooming and panning";
  25. RChart1->SetRange (0,-60,NumVal,110);
  26. RChart1->MoveTo (0,0);
  27. for (i=1; i<=NumVal; i++)
  28.   RChart1->DrawTo (i,i/10+i/30*sin(i*0.04)+0.1*(random(200)+random(200)));
  29. RChart1->DataColor = clRed;
  30. RChart1->MoveTo (0,5);
  31. for (i=1; i<=NumVal; i++)
  32.   RChart1->DrawTo (i,5+i/10*sin(i*0.05)*cos(i*0.04));
  33. RChart1->DataColor = clBlue;
  34. for (i=1; i<=NumVal; i++)
  35.   if (fmod(i,4) == 0)
  36.     {
  37.     RChart1->MarkAt (i,i/5*cos(i*0.05),4);
  38.     }
  39. }
  40. //---------------------------------------------------------------------------
  41. void __fastcall TForm1::But14Click(TObject *Sender)
  42. {
  43. double MidX, MidY, rx, ry;
  44.  
  45. MidX = (RChart1->RangeHiX+RChart1->RangeLoX)/2;
  46. MidY = (RChart1->RangeHiY+RChart1->RangeLoY)/2;
  47. rx = (RChart1->RangeHiX-RChart1->RangeLoX)/2.8;
  48. ry = (RChart1->RangeHiY-RChart1->RangeLoY)/2.8;
  49. RChart1->SetRange (MidX-rx,MidY-ry,MidX+rx,MidY+ry);
  50. RChart1->ShowGraf();
  51. }
  52. //---------------------------------------------------------------------------
  53. void __fastcall TForm1::But07Click(TObject *Sender)
  54. {
  55. double MidX, MidY, rx, ry;
  56.  
  57. MidX = (RChart1->RangeHiX+RChart1->RangeLoX)/2;
  58. MidY = (RChart1->RangeHiY+RChart1->RangeLoY)/2;
  59. rx = 1.4*(RChart1->RangeHiX-RChart1->RangeLoX)/2;
  60. ry = 1.4*(RChart1->RangeHiY-RChart1->RangeLoY)/2;
  61. RChart1->SetRange (MidX-rx,MidY-ry,MidX+rx,MidY+ry);
  62. RChart1->ShowGraf();
  63. }
  64. //---------------------------------------------------------------------------
  65. void __fastcall TForm1::RBZoomPanOffClick(TObject *Sender)
  66. {
  67. RChart1->MouseAction = maNone;
  68. PnlHints->Caption = "Select from Zoom Mode box to use interactive zooming and panning";
  69. }
  70. //---------------------------------------------------------------------------
  71. void __fastcall TForm1::RBPanClick(TObject *Sender)
  72. {
  73. RChart1->MouseAction = maPan;
  74. PnlHints->Caption = "maPan: Click and drag on graphics";
  75. }
  76. //---------------------------------------------------------------------------
  77. void __fastcall TForm1::RBZoomClick(TObject *Sender)
  78. {
  79. RChart1->MouseAction = maZoomDrag;
  80. PnlHints->Caption = "maZoomDrag: Click and drag on graphics";
  81. }
  82. //---------------------------------------------------------------------------
  83. void __fastcall TForm1::RBZoomWindClick(TObject *Sender)
  84. {
  85. RChart1->MouseAction = maZoomWind;
  86. PnlHints->Caption = "maZoomWind: Click on graphics area to define window corners";
  87. }
  88. //---------------------------------------------------------------------------
  89. void __fastcall TForm1::RBZoomWindPosClick(TObject *Sender)
  90. {
  91. RChart1->MouseAction = maZoomWindPos;
  92. PnlHints->Caption = "maZoomWindPos: Click on graphics area to define window corners";
  93. }
  94. //---------------------------------------------------------------------------
  95. void __fastcall TForm1::ButNormClick(TObject *Sender)
  96. {
  97. RChart1->LogScaleX = false;
  98. RChart1->LogScaleY = false;
  99. CBLogX->Checked = false;
  100. CBLogY->Checked = false;
  101. RChart1->SetRange (0,-60,NumVal,110);
  102. }
  103. //---------------------------------------------------------------------------
  104. void __fastcall TForm1::BBtDoneClick(TObject *Sender)
  105. {
  106. Close();
  107. }
  108. //---------------------------------------------------------------------------
  109. void __fastcall TForm1::CBLogXClick(TObject *Sender)
  110. {
  111. if ((! CBLogX->Checked) && (RChart1->RangeLoX <= 0))
  112.   {
  113.   LogWarnForm->ShowModal();
  114.   CBLogX->Checked = false;
  115.   }
  116. else
  117.   {
  118.   RChart1->LogScaleX = CBLogX->Checked;
  119.   CBLogX->Checked = RChart1->LogScaleX;
  120.   }
  121. }
  122. //---------------------------------------------------------------------------
  123. void __fastcall TForm1::CBLogYClick(TObject *Sender)
  124. {
  125. if ((! CBLogY->Checked) && (RChart1->RangeLoY <= 0))
  126.   {
  127.   LogWarnForm->ShowModal();
  128.   CBLogY->Checked = false;
  129.   }
  130. else
  131.   {
  132.   RChart1->LogScaleY = CBLogY->Checked;
  133.   CBLogY->Checked = RChart1->LogScaleY;
  134.   }
  135. }
  136. //---------------------------------------------------------------------------