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

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