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

RichEdit

开发平台:

Delphi

  1. /*==============================================================================
  2.   Mail merge application: part 1 - template editor.
  3.   Editing template and data for fields.
  4.   Template: RVStyle for template (RVStyle2) has two text styles
  5.   (0-th for normal text, 1 - for fields (with special Protection options)
  6.   Other styles can be added dynamically (right-click editor in C++Builder,
  7.   "Settings" in the context menu).
  8.   Template is stored in Template.rvf.
  9.   Data for fields: stored in Database.db.
  10.   There are two fields:
  11.   - Code - string field
  12.   - Data - rvf field.
  13.   Styles can be added dynamically in Data editor.
  14. ==============================================================================*/
  15. #include <vcl.h>
  16. #pragma hdrstop
  17. #include "TEMainFrm.h"
  18. //---------------------------------------------------------------------------
  19. #pragma package(smart_init)
  20. #pragma link "DBRV"
  21. #pragma link "RichView"
  22. #pragma link "RVEdit"
  23. #pragma link "RVScroll"
  24. #pragma link "RVStyle"
  25. #pragma resource "*.dfm"
  26. TForm1 *Form1;
  27. //---------------------------------------------------------------------------
  28. __fastcall TForm1::TForm1(TComponent* Owner)
  29.     : TForm(Owner)
  30. {
  31. }
  32. //---------------------------------------------------------------------------
  33. void __fastcall TForm1::DataSource1DataChange(TObject *Sender,
  34.       TField *Field)
  35. {
  36.   if (Table1->RecordCount==0)
  37.     Label2->Caption = "(empty)";
  38.   else if (Table1->RecNo<1)
  39.     Label2->Caption = "(new)";
  40.   else
  41.     Label2->Caption = Format("Record %d of %d", ARRAYOFCONST((Table1->RecNo, Table1->RecordCount)));
  42. }
  43. //---------------------------------------------------------------------------
  44. void __fastcall TForm1::FormCreate(TObject *Sender)
  45. {
  46.   RichViewEdit1->Clear();
  47.   RichViewEdit1->LoadRVF(ExtractFilePath(Application->ExeName)+"template.rvf");
  48.   RichViewEdit1->Format();
  49. }
  50. //---------------------------------------------------------------------------
  51. void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
  52. {
  53.   if (Table1->State==dsEdit || Table1->State==dsInsert)
  54.     Table1->Post();
  55.   RichViewEdit1->SaveRVF(ExtractFilePath(Application->ExeName)+"template.rvf", false);
  56. }
  57. //---------------------------------------------------------------------------
  58. void __fastcall TForm1::Button1Click(TObject *Sender)
  59. {
  60.   AnsiString s = "";
  61.   if (InputQuery("Insert Field", "Field code:", s))
  62.   {
  63.     if (s=="")
  64.       return;
  65.     // s must be equal to one of Codes in the database
  66.     RichViewEdit1->SetFocus();
  67.     RichViewEdit1->CurTextStyleNo = 1;
  68.     RichViewEdit1->InsertText(s, false);
  69.   }
  70. }
  71. //---------------------------------------------------------------------------