home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 March / Chip_1999-03_cd.bin / zkuste / delphi / D / MATEM.ARJ / RCHART.ZIP / exmpl-4 / cpp3 / dragitem.cpp next >
Encoding:
C/C++ Source or Header  |  1997-05-23  |  3.2 KB  |  113 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "dragitem.h"
  6. #include "math.h"
  7. //---------------------------------------------------------------------------
  8. #pragma link "RChart"
  9. #pragma resource "*.dfm"
  10. TForm1 *Form1;
  11. bool MarkedMove = false;
  12. bool FirstMove = true;
  13. int LastPosX, LastPosY;
  14. //---------------------------------------------------------------------------
  15. __fastcall TForm1::TForm1(TComponent* Owner)
  16.     : TForm(Owner)
  17. {
  18. }
  19. //---------------------------------------------------------------------------
  20. void __fastcall TForm1::SbMarkClick(TObject *Sender)
  21. {
  22. double xLo, YLo, XHi, YHi;
  23.  
  24. PnlStat->Caption = "Select the data to move";
  25. MarkedMove = SBDrag->Down;
  26. if (RChart1->MouseBox (xLo, YLo, XHi, YHi) == true)
  27.   {
  28.   RChart1->MarkItemsInWindow (xLo, YLo, XHi, YHi, tkMarkAt, 99);
  29.   RChart1->NewColorOfClassItems (clBlue, 99);
  30.   RChart1->ShowGraf();
  31.   }
  32. SbMark->Down = False;
  33. SBDrag->Down = True;
  34. MarkedMove = SBDrag->Down;
  35. PnlStat->Caption = "Drag the data by clicking the chart and draging the mouse";
  36. }
  37. //---------------------------------------------------------------------------
  38. void __fastcall TForm1::SBDragClick(TObject *Sender)
  39. {
  40. MarkedMove = SBDrag->Down;
  41. if (MarkedMove == true)
  42.   {
  43.   PnlStat->Caption = "Drag the data by clicking the chart and draging the mouse";
  44.   }
  45. else
  46.   {
  47.   PnlStat->Caption = "";
  48.   }
  49. }
  50. //---------------------------------------------------------------------------
  51. void __fastcall TForm1::SBClearMarksClick(TObject *Sender)
  52. {
  53. SBDrag->Down = False;
  54. RChart1->MarkAllItems (tkEverything, 0);
  55. RChart1->NewColorOfClassItems (clRed, 0);
  56. RChart1->ShowGraf();
  57. }
  58. //---------------------------------------------------------------------------
  59. void __fastcall TForm1::BBtDoneClick(TObject *Sender)
  60. {
  61. Close();
  62. }
  63. //---------------------------------------------------------------------------
  64. void __fastcall TForm1::FormActivate(TObject *Sender)
  65. {
  66. const int Numval = 200;
  67. int i;
  68.  
  69. RChart1->RangeHiX = Numval;
  70. RChart1->RangeLoX = 0;
  71. RChart1->RangeHiY = 10;
  72. RChart1->RangeLoY = -10;
  73. RChart1->DataColor = clRed;
  74. for (i=1; i<=Numval; i++)
  75.   RChart1->MarkAt (i,i/20.0*sin(i*0.15)*cos(i*0.062),4);
  76. RChart1->MoveTo (0,0); // dummy token for FindNext-example 
  77. }
  78. //---------------------------------------------------------------------------
  79. void __fastcall TForm1::RChart1MouseMove(TObject *Sender, TShiftState Shift,
  80.     int X, int Y)
  81. {
  82. double rx, ry, rx2, ry2;
  83.  
  84. if (Shift.Contains(ssLeft) && (MarkedMove == true))
  85.   {
  86.   if (FirstMove == true)
  87.     {
  88.     FirstMove = false;
  89.     LastPosX = X;
  90.     LastPosY = Y;
  91.     }
  92.   else
  93.     {
  94.     RChart1->M2R (X,Y,rx,ry);
  95.     RChart1->M2R (LastPosX,LastPosY,rx2,ry2);
  96.     RChart1->ScaleSelectedItems (1,rx-rx2,1,ry-ry2,99);
  97.     RChart1->ShowGraf();
  98.     LastPosX = X;
  99.     LastPosY = Y;
  100.     }
  101.   }
  102. else
  103.   {
  104.   FirstMove = True;
  105.   }
  106. }
  107. //---------------------------------------------------------------------------
  108. void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X,
  109.     int Y)
  110. {
  111. Screen->Cursor = crDefault;
  112. }
  113. //---------------------------------------------------------------------------