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

RichEdit

开发平台:

Delphi

  1. //---------------------------------------------------------------------------
  2. #include <vclvcl.h>
  3. #pragma hdrstop
  4. #include "Unit1.h"
  5. //---------------------------------------------------------------------------
  6. #pragma link "RVEdit"
  7. #pragma link "RichView"
  8. #pragma link "RVScroll"
  9. #pragma link "RVStyle"
  10. #pragma link "RVMisc"
  11. #pragma resource "*.dfm"
  12. TForm1 *Form1;
  13. //---------------------------------------------------------------------------
  14. __fastcall TForm1::TForm1(TComponent* Owner)
  15.     : TForm(Owner)
  16. {
  17. }
  18. //---------------------------------------------------------------------------
  19. void ShowInfo(const AnsiString msg, const AnsiString cpt)
  20. {
  21.   Application->MessageBox(msg.c_str(),cpt.c_str(), MB_OK | MB_ICONINFORMATION);
  22. }
  23. //============================== REPLACE ======================================
  24. void __fastcall TForm1::btnReplaceClick(TObject *Sender)
  25. {
  26.   rve->SetFocus();
  27.   fd->CloseDialog();
  28.   if (rve->SelectionExists())
  29.   {
  30.     AnsiString s = rve->GetSelText();
  31.     int p = s.Pos("r");
  32.     if (p)
  33.       s = s.SubString(1,p-1);
  34.     rd->FindText = s;
  35.   }
  36.   rd->Execute();
  37. }
  38. //---------------------------------------------------------------------------
  39. void __fastcall TForm1::rdFind(TObject *Sender)
  40. {
  41.   TRVESearchOptions options = GetRVESearchOptions(rd->Options);
  42.   if (!rve->SearchText(rd->FindText, options))
  43.     ShowInfo("String not found","Search and Replace");
  44. }
  45. //---------------------------------------------------------------------------
  46. void __fastcall TForm1::rdReplace(TObject *Sender)
  47. {
  48.   TRVESearchOptions options = GetRVESearchOptions(rd->Options);
  49.   if (rd->Options.Contains(frReplace))
  50.   {
  51.     if (rve->GetSelText()==rd->FindText)
  52.       rve->InsertText(rd->ReplaceText, false);
  53.     if (!rve->SearchText(rd->FindText, options))
  54.       ShowInfo("String not found","Search and Replace");
  55.   }
  56.   else if (rd->Options.Contains(frReplaceAll))
  57.   {
  58.     int c = 0;
  59.     if (rve->GetSelText()==rd->FindText)
  60.     {
  61.       rve->InsertText(rd->ReplaceText, false);
  62.       c++;
  63.     }
  64.     while (rve->SearchText(rd->FindText, options))
  65.     {
  66.       rve->InsertText(rd->ReplaceText, false);
  67.       c++;
  68.     }
  69.     ShowInfo(Format("There were %d replacements",ARRAYOFCONST((c))),"Replace");
  70.   }
  71. }
  72. //================================= FIND ======================================
  73. void __fastcall TForm1::btnFindClick(TObject *Sender)
  74. {
  75.   rve->SetFocus();
  76.   rd->CloseDialog();
  77.   if (rve->SelectionExists())
  78.   {
  79.     AnsiString s = rve->GetSelText();
  80.     int p = s.Pos("r");
  81.     if (p)
  82.       s = s.SubString(1,p-1);
  83.     fd->FindText = s;
  84.   }
  85.   fd->Execute();
  86. }
  87. //---------------------------------------------------------------------------
  88. void __fastcall TForm1::fdFind(TObject *Sender)
  89. {
  90.   TRVESearchOptions options = GetRVESearchOptions(fd->Options);
  91.   if (!rve->SearchText(fd->FindText, options))
  92.     ShowInfo("String not found","Search");
  93. }
  94. //============================================================================
  95. void __fastcall TForm1::rveRVFImageListNeeded(TCustomRichView *Sender,
  96.     int ImageListTag, TCustomImageList *&il)
  97. {
  98.   il = this->il;    
  99. }
  100. //---------------------------------------------------------------------------
  101. void __fastcall TForm1::bnnOpenClick(TObject *Sender)
  102. {
  103.   bool r;
  104.   if (OpenDialog1->Execute())
  105.   {
  106.     rve->Clear();
  107.     switch(OpenDialog1->FilterIndex)
  108.     {
  109.       case 1: // RVF
  110.         r = rve->LoadRVF(OpenDialog1->FileName);
  111.         break;
  112.       case 2: // ANSI text
  113.         r = rve->LoadText(OpenDialog1->FileName,0,0,False);
  114.         break;
  115.       default:
  116.         r = false;
  117.     }
  118.     if (!r)
  119.       Application->MessageBox("Error during loading", "Error", 0);
  120.     rve->Format();
  121.     rve->SetFocus();
  122.   }
  123. }
  124. //---------------------------------------------------------------------------
  125. void __fastcall TForm1::FormCreate(TObject *Sender)
  126. {
  127.   TComponentClass Classes[3] = { __classid(TButton), __classid(TEdit), __classid(TOleContainer) };
  128.   RegisterClasses(Classes,2);    
  129. }
  130. //---------------------------------------------------------------------------