Unit1.cpp
上传用户:daoqigc
上传日期:2021-04-20
资源大小:2795k
文件大小:4k
源码类别:

RichEdit

开发平台:

Delphi

  1. /*=============================================================================}
  2. { This demo shows mouse events, not connected with hypertext IDs               }
  3. { - OnRVMouseDown, OnRVMouseUp, OnRVDblClick, OnRVRightClick;                  }
  4. {=============================================================================*/
  5. #include <vclvcl.h>
  6. #pragma hdrstop
  7. #include "Unit1.h"
  8. #include "CRVFData.hpp"
  9. //---------------------------------------------------------------------------
  10. #pragma link "RichView"
  11. #pragma link "RVScroll"
  12. #pragma link "RVStyle"
  13. #pragma resource "*.dfm"
  14. TForm1 *Form1;
  15. //---------------------------------------------------------------------------
  16. __fastcall TForm1::TForm1(TComponent* Owner)
  17.     : TForm(Owner)
  18. {
  19. }
  20. //---------------------------------------------------------------------------
  21. void __fastcall TForm1::FormCreate(TObject *Sender)
  22. {
  23.   RichView1->AddNL("More mouse events",1,1);
  24.   RichView1->AddTextNL("There are some more mouse events in RichViewn"
  25.                       "Left/Right/Double - click in this Window.",0,0,0);
  26.   TIcon* ico = new TIcon;
  27.   ico->Assign(Image1->Picture->Graphic);
  28.   RichView1->AddPictureEx("Notebook image",ico,1, rvvaMiddle);
  29.   RichView1->Add(" - example of image",0);
  30.   RichView1->Format();
  31. }
  32. //---------------------------------------------------------------------------
  33. void __fastcall TForm1::RichView1RVDblClick(TCustomRichView *Sender,
  34.     AnsiString ClickedWord, int Style)
  35. {
  36.   panDblClick->Caption = "DoubleClick: at word='"+ClickedWord+"', at item having style="+
  37.                          IntToStr(Style);
  38. }
  39. //---------------------------------------------------------------------------
  40. AnsiString TForm1::MouseInfo(TMouseButton Button, TShiftState Shift, int ItemNo, int X, int Y)
  41. {
  42.   AnsiString ButtonStr, Word;
  43.   int AItemNo;
  44.   TCustomRVFormattedData* ARVData; // from CRVFData.hpp
  45.   ButtonStr = "";
  46.   switch (Button)
  47.   {
  48.     case mbLeft:
  49.       ButtonStr = "Left button";
  50.       break;
  51.     case mbRight:
  52.       ButtonStr = "Right button";
  53.       break;
  54.     case mbMiddle:
  55.       ButtonStr = "Middle button";
  56.       break;
  57.   }
  58.   if (ItemNo!=-1)
  59.   {
  60.     // this version is available since CB4
  61.     // Word = RichView1->GetWordAt(X,Y);
  62.     RichView1->GetWordAt(X,Y, ARVData, AItemNo, Word);
  63.     return Format("%s at (%d,%d), at item #%d, at word '%s'",
  64.                   ARRAYOFCONST((ButtonStr.c_str(), X,Y, ItemNo, Word.c_str())));
  65.   }
  66.   else
  67.     return Format("%s at (%d,%d) - no item at this position",
  68.                   ARRAYOFCONST((ButtonStr, X,Y)));
  69. }
  70. //---------------------------------------------------------------------------
  71. void __fastcall TForm1::RichView1RVMouseDown(TCustomRichView *Sender,
  72.     TMouseButton Button, TShiftState Shift, int ItemNo, int X, int Y)
  73. {
  74.   panMouseDown->Caption = "MouseDown: "+MouseInfo(Button, Shift, ItemNo, X, Y);
  75. }
  76. //---------------------------------------------------------------------------
  77. void __fastcall TForm1::RichView1RVMouseUp(TCustomRichView *Sender,
  78.     TMouseButton Button, TShiftState Shift, int ItemNo, int X, int Y)
  79. {
  80.   panMouseUp->Caption = "MouseUp: "+MouseInfo(Button, Shift, ItemNo, X, Y);
  81. }
  82. //---------------------------------------------------------------------------
  83. // This event is obsolete. Use OnRVMouseUp instead
  84. void __fastcall TForm1::RichView1RVRightClick(TCustomRichView *Sender,
  85.     AnsiString ClickedWord, int Style, int X, int Y)
  86. {
  87.   panRightClick->Caption = Format("RightClick: at (%d,%d), at word='%s', at item having style=%d",
  88.                                   ARRAYOFCONST((X,Y,ClickedWord,Style)));
  89. }
  90. //---------------------------------------------------------------------------