⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.cpp

📁 TRichView/RichView 是一套地道的Delphi/C++Builder控件
💻 CPP
📖 第 1 页 / 共 4 页
字号:
       OutStr = "<INPUT type=\"text\" value=\""+((TEdit*)SaveMe)->Text+"\">";
       return;
     }
     break;
   case rvsfRTF:
     OutStr = AnsiString("\\plain\\b (")+SaveMe->ClassName()+")";
     break;
  }
}
//---------------------------------------------------------------------------
// Event: saving URLs in HTML and RTF
void __fastcall TForm1::RichViewEdit1WriteHyperlink(TCustomRichView *Sender,
	int id, TCustomRVData *RVData, int ItemNo, TRVSaveFormat SaveFormat,
	AnsiString &Target, AnsiString &Extras)
{
  Target = GetTagStr(RVData->GetItemTag(ItemNo));
}
//---------------------------------------------------------------------------
// File|Clear
void __fastcall TForm1::mitClearClick(TObject *Sender)
{
   CloseOleContainer();
   RichViewEdit1->Clear();
   RichViewEdit1->Format();
   cmbPara->ItemIndex = RichViewEdit1->CurParaStyleNo;
   cmbText->ItemIndex = RichViewEdit1->CurTextStyleNo;
   UpdateUndoMenu();
}
//---------------------------------------------------------------------------
// File|Print Preview
void __fastcall TForm1::mitPreviewClick(TObject *Sender)
{
  RVPrint1->AssignSource(RichViewEdit1);
  RVPrint1->FormatPages(TRVDisplayOptions());
  if (RVPrint1->PagesCount>0)
  {
    frmPreview->rvpp->RVPrint = RVPrint1;
    frmPreview->Button1Click(NULL); //  Show First Page
    frmPreview->ShowModal();
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::mitPrintClick(TObject *Sender)
{
#if __BORLANDC__ > 0x520
  bool PrintIt = psd->Execute();
#else
  bool PrintIt = true;
#endif
  if (PrintIt)
  {
    RVPrint1->AssignSource(RichViewEdit1);
    RVPrint1->FormatPages(TRVDisplayOptions());
    if (RVPrint1->PagesCount>0)
      RVPrint1->Print("RichView Edit Demo",1,false);
  }
}
//---------------------------------------------------------------------------
// File|Exit
void __fastcall TForm1::mitExitClick(TObject *Sender)
{
  Close();
}
//======================================================================
// Main menu: "Insert"
//======================================================================
// Insert|File...
void __fastcall TForm1::mitInsertFileClick(TObject *Sender)
{
  OpenDialog1->Title = "Inserting File";
  OpenDialog1->Filter = "RichView Format Files(*.rvf)|*.rvf|"
                        "RTF Files(*.rtf)|*.rtf|"
                        "Text Files - autodetect (*.txt)|*.txt|"
                        "ANSI Text Files (*.txt)|*.txt|"
                        "Unicode Text Files (*.txt)|*.txt|"
                        "OEM Text Files (*.txt)|*.txt";
  if (OpenDialog1->Execute())
  {
    Screen->Cursor = crHourGlass;
    bool r;
    switch (OpenDialog1->FilterIndex)
    {
      case 1: // RVF
        r = RichViewEdit1->InsertRVFFromFileEd(OpenDialog1->FileName);
        break;
      case 2: // RTF
        r = RichViewEdit1->InsertRTFFromFileEd(OpenDialog1->FileName);
        break;
      case 3: // Text
        if (RV_TestFileUnicode(OpenDialog1->FileName)==rvutYes)
          r = RichViewEdit1->InsertTextFromFileW(OpenDialog1->FileName);
        else
          r = RichViewEdit1->InsertTextFromFile(OpenDialog1->FileName);
        break;
      case 4: // ANSI Text
        r = RichViewEdit1->InsertTextFromFile(OpenDialog1->FileName);
        break;
      case 5: // Unicode Text
        r = RichViewEdit1->InsertTextFromFileW(OpenDialog1->FileName);
        break;
      case 6: // OEM Text
        r = RichViewEdit1->InsertOEMTextFromFile(OpenDialog1->FileName);
        break;
      default:
        r = false;
    }
    Screen->Cursor = crDefault;
    if (!r)
      Application->MessageBox("Error reading file", "Error",
                             MB_OK | MB_ICONSTOP);
  }
}
//---------------------------------------------------------------------------
// Insert|Picture...
void __fastcall TForm1::mitPictureClick(TObject *Sender)
{
  OpenDialog1->Title = "Inserting Image";
#if __BORLANDC__ > 0x0530
  OpenDialog1->Filter = "Graphics(*.bmp;*.wmf;*.emf;*.ico;*.jpg)|*.bmp;*.wmf;*.emf;*.ico;*.jpg|All(*.*)|*.*";
#else
  OpenDialog1->Filter = "Graphics(*.bmp;*.wmf;*.emf;*.ico)|*.bmp;*.wmf;*.emf;*.ico|All(*.*)|*.*";
#endif
  if (OpenDialog1->Execute())
  {
    TGraphic* gr = NULL;
    AnsiString ext = UpperCase(ExtractFileExt(OpenDialog1->FileName));
#if __BORLANDC__ > 0x0530
    if (ext==".JPG" || ext==".JPEG")
      gr = new TJPEGImage;
    else
#endif
    if (ext==".BMP" || ext==".DIB")
      gr = new Graphics::TBitmap;
    else if (ext==".ICO")
      gr = new TIcon;
    else if (ext==".WMF" || ext==".EMF")
      gr = new TMetafile;
    else
      Application->MessageBox(("Format '"+ext+"' is not supported").c_str(), "Error",
                             MB_OK | MB_ICONSTOP);
    if (gr)
    {
      gr->LoadFromFile(OpenDialog1->FileName);
      RichViewEdit1->InsertPicture("",gr,rvvaBaseline);
    }
  }
}
//---------------------------------------------------------------------------
// Event: clicking inserted controls
void __fastcall TForm1::OnControlClick(TObject *Sender)
{
  RichViewEdit1->SelectControl((TControl*)Sender);
}
//---------------------------------------------------------------------------
// Insert|Component|Button
void __fastcall TForm1::mitButtonCompClick(TObject *Sender)
{
const AnsiString Captions[10] =
       {
       "Help","Exit","Cancel","OK","Close","Run","Options...","Minimize",
       "Hide","Show"
       };
  TButton* btn = new TButton((TComponent*)NULL);
  btn->Caption = Captions[random(10)];
  btn->OnClick = OnControlClick;
  RichViewEdit1->InsertControl("",btn,rvvaBaseline);
  if (RichViewEdit1->CurItemStyle==rvsComponent)
    RichViewEdit1->SetCurrentItemExtraIntProperty(rvepResizable, 1, True);
}
//---------------------------------------------------------------------------
// Insert|Component|Edit Box
void __fastcall TForm1::mitEditBoxCompClick(TObject *Sender)
{
const AnsiString Captions[10] =
       {
       "0","Hello","1","$0","2x2=4","enter text here","x<y","to be or not to be?",
       "(empty)","(full)"
       };
  TEdit* edt = new TEdit((TComponent*)NULL);
  edt->Text = Captions[random(10)];
  edt->OnClick = OnControlClick;
  RichViewEdit1->InsertControl("",edt,rvvaBaseline);
  if (RichViewEdit1->CurItemStyle==rvsComponent)
    RichViewEdit1->SetCurrentItemExtraIntProperty(rvepResizable, 1, True);
}
//---------------------------------------------------------------------------
// Insert|Bullet|"XXX"
void __fastcall TForm1::mitInsertBulletClick(TObject *Sender)
{
  RichViewEdit1->InsertBullet(((TMenuItem*)Sender)->Tag, il);    
}
//---------------------------------------------------------------------------
// Insert|Hot Spot|"XXX"
void __fastcall TForm1::mitInsertHotspotClick(TObject *Sender)
{
  RichViewEdit1->InsertHotspot(((TMenuItem*)Sender)->Tag, ((TMenuItem*)Sender)->Tag+2, il);
}
//---------------------------------------------------------------------------
// Insert|Break
void __fastcall TForm1::mitBreakClick(TObject *Sender)
{
   RichViewEdit1->InsertBreak(1, rvbsLine, clNone);    
}
//======================================================================
// Main menu : "Edit"
//======================================================================
// Edit
void __fastcall TForm1::mpdEditClick(TObject *Sender)
{
  mitPasteAsRTF->Enabled      = RichViewEdit1->CanPasteRTF();
  mitPasteAsText->Enabled     = Clipboard()->HasFormat(CF_TEXT);
  mitPasteAsUnicodeText->Enabled = Clipboard()->HasFormat(CF_UNICODETEXT);
  mitPasteAsMetafile->Enabled = Clipboard()->HasFormat(CF_METAFILEPICT);
  mitPasteAsBitmap->Enabled   = Clipboard()->HasFormat(CF_BITMAP);
  mitPasteAsRVF->Enabled      = RichViewEdit1->CanPasteRVF();
  mitPaste->Enabled           = RichViewEdit1->CanPaste();

  mitInsertPageBreak->Enabled = !RichViewEdit1->InplaceEditor;
  mitRemovePageBreak->Enabled =
    !RichViewEdit1->InplaceEditor &&
    RichViewEdit1->PageBreaksBeforeItems[RichViewEdit1->CurItemNo];

  // You can edit properties only for item with caret.
  // We disable this item because otherwise user can think what he will
  // edit properties of all selected items.
  // More smart programs can determine if there is only one item is selected
  // and do not disable this item in this case
  mitEditProps->Enabled       = ! RichViewEdit1->SelectionExists();
}
//---------------------------------------------------------------------------
// Edit|Undo
void __fastcall TForm1::mitUndoClick(TObject *Sender)
{
  RichViewEdit1->Undo();
}
//---------------------------------------------------------------------------
// Edit|Redo
void __fastcall TForm1::mitRedoClick(TObject *Sender)
{
  RichViewEdit1->Redo();
}
//---------------------------------------------------------------------------
// Edit|Cut
void __fastcall TForm1::mitCutClick(TObject *Sender)
{
  RichViewEdit1->CutDef();
}
//---------------------------------------------------------------------------
// Edit|Copy
void __fastcall TForm1::mitCopyClick(TObject *Sender)
{
  RichViewEdit1->CopyDef();
}
//---------------------------------------------------------------------------
// Edit|Paste
void __fastcall TForm1::mitPasteClick(TObject *Sender)
{
  RichViewEdit1->Paste();    
}
//---------------------------------------------------------------------------
// Edit|Paste As|RTF
void __fastcall TForm1::mitPasteAsRTFClick(TObject *Sender)
{
  RichViewEdit1->PasteRTF();
}
//---------------------------------------------------------------------------
// Edit|Paste As|Text
void __fastcall TForm1::mitPasteAsTextClick(TObject *Sender)
{
  RichViewEdit1->PasteText();
}
//---------------------------------------------------------------------------
// Edit|Paste As|Unicode Text
void __fastcall TForm1::mitPasteAsUnicodeTextClick(TObject *Sender)
{
  RichViewEdit1->PasteTextW();
}
//---------------------------------------------------------------------------
// Edit|Paste As|Metafile
void __fastcall TForm1::mitPasteAsMetafileClick(TObject *Sender)
{
  RichViewEdit1->PasteMetafile(false);
}
//---------------------------------------------------------------------------
// Edit|Paste As|Bitmap
void __fastcall TForm1::mitPasteAsBitmapClick(TObject *Sender)
{
  RichViewEdit1->PasteBitmap(false);
}
//---------------------------------------------------------------------------
// Edit|Paste As|RichView Format
void __fastcall TForm1::mitPasteAsRVFClick(TObject *Sender)
{
  RichViewEdit1->PasteRVF();
}
//---------------------------------------------------------------------------
// Edit|Paste As|OLE
void __fastcall TForm1::mitPasteAsOLEClick(TObject *Sender)
{
  TOleContainer* oc = new TOleContainer((TComponent*)NULL);
  if (oc->CanPaste)
  {
    oc->Visible = false;
    oc->BorderStyle = bsNone;
    oc->Parent = RichViewEdit1;
    oc->SizeMode = smAutoSize;
    oc->Paste();
    RichViewEdit1->InsertControl("", oc,rvvaBaseline);
    oc->OnResize = OnOleResize;
    oc->OnActivate = OnOleActivate;
    oc->OnDeactivate = OnOleDeactivate;
    oc->Visible = true;
  }
  else
    delete oc;
}
//---------------------------------------------------------------------------
void TForm1::CloseOleContainer()
{
  if (ActiveOleContainer)
  {
    ActiveOleContainer->Close();
    ActiveOleContainer = NULL;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnOleResize(TObject *Sender)
{
  RichViewEdit1->AdjustControlPlacement2((TControl*)Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnOleActivate(TObject *Sender)
{
  if (ActiveOleContainer!=Sender)
    CloseOleContainer();
  ActiveOleContainer = (TOleContainer*)Sender;
  RichViewEdit1->AdjustControlPlacement2((TControl*)Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnOleDeactivate(TObject *Sender)
{
  RichViewEdit1->AdjustControlPlacement2((TControl*)Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RichViewEdit1Click(TObject *Sender)
{
  CloseOleContainer();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
  CloseOleContainer();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RichViewEdit1ControlAction(TCustomRichView *Sender,
	TRVControlAction ControlAction, int ItemNo, TControl *&ctrl)
{
  if (ControlAction==rvcaAfterRVFLoad)
  {
    if (ctrl->InheritsFrom(__classid(TOleContainer)))
    {
      ((TOleContainer*)ctrl)->OnResize = OnOleResize;
      ((TOleContainer*)ctrl)->OnActivate = OnOleActivate;
      ((TOleContainer*)ctrl)->OnDeactivate = OnOleDeactivate;
    }
    else if (ctrl->InheritsFrom(__classid(TButton)))
      ((TButton*)ctrl)->OnClick = OnControlClick;
    else if (ctrl->InheritsFrom(__classid(TEdit)))
      ((TEdit*)ctrl)->OnClick = OnControlClick;
  }
  if (ctrl!=ActiveOleContainer)
    return;
  if (ControlAction==rvcaMoveToUndoList ||
      ControlAction==rvcaDestroy ||
      ControlAction==rvcaBeforeRVFSave)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -