📄 unit1.cpp
字号:
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 + -