📄 ccteditoru.pas
字号:
{*******************************************************}
{ }
{ RichViewActions }
{ Demo project. }
{ You can use it as a basis for your }
{ applications. }
{ }
{ Copyright (c) Sergey Tkachenko }
{ svt@trichview.com }
{ http://www.trichview.com }
{ }
{*******************************************************}
unit CCTEditorU;
interface
{
Remove dots from the defines below to enable support for Gif and Png.
GifImage (by Anders Melander)
http://www.torry.net/vcl/graphics/gif/gifimage.exe (original)
http://clootie.narod.ru/delphi/download_vcl.html (update)
PngObject (by Gustavo Huffenbacher Daud)
http://pngdelphi.sourceforge.net/
}
{.$DEFINE USE_GIFIMAGE}
{.$DEFINE USE_PNGOBJECT}
uses
Windows, Messages, SysUtils,
Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, About,
ActnList, StdActns, ImgList,
Menus, ShellApi, Printers, ToolWin, RVUni,
{$IFDEF USE_GIFIMAGE}
GifImage,
{$ENDIF}
{$IFDEF USE_PNGOBJECT}
PngImage,
{$ENDIF}
RVScroll, RichView, RVEdit,
RVStyle, PtblRV, CRVFData, RVTable, RVItem, CRVData, RVFuncs,
RichViewActions, RVFontCombos, RVALocalize, ExtCtrls, WinSkinData;
{$I RV_Defs.inc}
type
TCCTEditor = class(TForm)
RichViewEdit1: TRichViewEdit;
MainMenu1: TMainMenu;
mitFile: TMenuItem;
mitEdit: TMenuItem;
New1: TMenuItem;
Load1: TMenuItem;
PrintPreview1: TMenuItem;
N1: TMenuItem;
Print1: TMenuItem;
mitExit: TMenuItem;
Cut1: TMenuItem;
Copy1: TMenuItem;
n2: TMenuItem;
mitFont: TMenuItem;
Bold1: TMenuItem;
Italic1: TMenuItem;
Underline1: TMenuItem;
N3: TMenuItem;
mitPara: TMenuItem;
Leftjustify1: TMenuItem;
N4: TMenuItem;
Undo1: TMenuItem;
Redo1: TMenuItem;
Changefont1: TMenuItem;
Save1: TMenuItem;
Strikeout1: TMenuItem;
mitTable: TMenuItem;
InsertTable1: TMenuItem;
N5: TMenuItem;
SelectAll1: TMenuItem;
AlignLeft1: TMenuItem;
AlignCenter1: TMenuItem;
AlignRight1: TMenuItem;
N6: TMenuItem;
DecreaseIndent1: TMenuItem;
IncreaseIndent1: TMenuItem;
RVStyle1: TRVStyle;
N7: TMenuItem;
StatusBar1: TStatusBar;
Justify1: TMenuItem;
InsertRowAbove1: TMenuItem;
InsertRowBelow1: TMenuItem;
N8: TMenuItem;
InsertColumnLeft1: TMenuItem;
InsertColumnRight1: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
DeleteRows1: TMenuItem;
rvActionTableDeleteCols11: TMenuItem;
N11: TMenuItem;
MergeCells1: TMenuItem;
SplitCells1: TMenuItem;
N12: TMenuItem;
Select1: TMenuItem;
SelectTable1: TMenuItem;
SelectColumns1: TMenuItem;
SelectRows1: TMenuItem;
SelectCell1: TMenuItem;
Style1: TMenuItem;
Size1: TMenuItem;
ShrinkFont1: TMenuItem;
GrowFont1: TMenuItem;
N13: TMenuItem;
ShrinkFontByOnePoint1: TMenuItem;
GrowFontByOnePoint1: TMenuItem;
N14: TMenuItem;
AllCapitals1: TMenuItem;
Overline1: TMenuItem;
N15: TMenuItem;
Find1: TMenuItem;
FindNext1: TMenuItem;
Replace1: TMenuItem;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton11: TToolButton;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton13: TToolButton;
ToolButton22: TToolButton;
ToolButton17: TToolButton;
ToolButton18: TToolButton;
ToolButton19: TToolButton;
ToolButton20: TToolButton;
ToolButton21: TToolButton;
ToolBar2: TToolBar;
ToolButton41: TToolButton;
ToolButton42: TToolButton;
ToolButton43: TToolButton;
ToolButton44: TToolButton;
ToolButton49: TToolButton;
ToolButton50: TToolButton;
ToolButton51: TToolButton;
ToolButton53: TToolButton;
ToolButton54: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolBar3: TToolBar;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton12: TToolButton;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
ToolButton16: TToolButton;
ToolButton23: TToolButton;
ToolButton24: TToolButton;
ToolButton25: TToolButton;
ToolButton26: TToolButton;
ToolButton28: TToolButton;
ToolButton8: TToolButton;
ToolButton27: TToolButton;
ToolButton29: TToolButton;
ToolButton30: TToolButton;
ToolButton31: TToolButton;
ToolButton32: TToolButton;
ToolButton33: TToolButton;
ToolButton34: TToolButton;
ToolButton35: TToolButton;
N16: TMenuItem;
ToolButton36: TToolButton;
ToolButton37: TToolButton;
extColor1: TMenuItem;
ToolButton38: TToolButton;
extBackgroundColor1: TMenuItem;
N17: TMenuItem;
ParagraphBackgroundColor1: TMenuItem;
ToolButton39: TToolButton;
ToolButton40: TToolButton;
mitFormat: TMenuItem;
BackgroundColor1: TMenuItem;
DeleteTable1: TMenuItem;
ToolButton45: TToolButton;
N18: TMenuItem;
rvActionParagraph11: TMenuItem;
RVAControlPanel1: TRVAControlPanel;
Font1: TMenuItem;
FillColor1: TMenuItem;
SaveAs1: TMenuItem;
Export1: TMenuItem;
mitInsert: TMenuItem;
File1: TMenuItem;
Picture1: TMenuItem;
ToolButton46: TToolButton;
PasteSpecial1: TMenuItem;
N19: TMenuItem;
SingleLineSpacing1: TMenuItem;
N15LineSpacing1: TMenuItem;
DoubleLineSpacing1: TMenuItem;
N20: TMenuItem;
InsertPageBreak1: TMenuItem;
RemovePageBreak1: TMenuItem;
N21: TMenuItem;
AlignCellContents1: TMenuItem;
AlignCellToTheTop1: TMenuItem;
AlignCellToTheMiddle1: TMenuItem;
AlignCellToTheBottom1: TMenuItem;
DefaultCellVerticalAlignment1: TMenuItem;
ParagraphBorders1: TMenuItem;
N22: TMenuItem;
Properties1: TMenuItem;
HorizontalLine1: TMenuItem;
HypertextLink1: TMenuItem;
ToolButton47: TToolButton;
N23: TMenuItem;
ableProperties1: TMenuItem;
N24: TMenuItem;
ShowGridLines1: TMenuItem;
N25: TMenuItem;
BulletsandNumbering1: TMenuItem;
InsertSymbol1: TMenuItem;
mitBorders: TMenuItem;
LeftBorder1: TMenuItem;
rvActionTableCellTopBorder11: TMenuItem;
rvActionTableCellRightBorder11: TMenuItem;
rvActionTableCellBottomBorder11: TMenuItem;
rvActionTableCellAllBorders11: TMenuItem;
rvActionTableCellNoBorders11: TMenuItem;
ToolBar4: TToolBar;
ToolButton48: TToolButton;
ToolButton52: TToolButton;
ToolButton55: TToolButton;
ToolButton56: TToolButton;
ToolButton58: TToolButton;
ToolButton59: TToolButton;
Bullets1: TMenuItem;
Numbering1: TMenuItem;
ToolButton57: TToolButton;
ToolButton60: TToolButton;
ToolButton61: TToolButton;
ToolBar5: TToolBar;
cmbFont: TRVFontComboBox;
RVAPopupMenu1: TRVAPopupMenu;
Background1: TMenuItem;
RVPrint1: TRVPrint;
ColorDialog1: TColorDialog;
Button1: TButton;
cmbFontSize: TRVFontSizeComboBox;
PageSetup1: TMenuItem;
N26: TMenuItem;
CharacterCase1: TMenuItem;
mitAbout: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure mitExitClick(Sender: TObject);
procedure RichViewEdit1Jump(Sender: TObject; id: Integer);
procedure RichViewEdit1ReadHyperlink(Sender: TCustomRichView;
const Target, Extras: String; DocFormat: TRVLoadFormat; var StyleNo,
ItemTag: Integer; var ItemName: String);
procedure RichViewEdit1URLNeeded(Sender: TCustomRichView; id: Integer;
var url: String);
procedure cmbFontClick(Sender: TObject);
procedure cmbKeyPress(Sender: TObject; var Key: Char);
procedure RichViewEdit1CurTextStyleChanged(Sender: TObject);
procedure cmbFontSizeClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure mitFileClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure mitAboutClick(Sender: TObject);
private
{ Private declarations }
UpdatingCombos: Boolean;
procedure ColorPickerShow(Sender: TObject);
procedure ColorPickerHide(Sender: TObject);
procedure rvActionSave1DocumentFileChange(Sender: TObject;
Editor: TCustomRichViewEdit; const FileName: String;
FileFormat: TrvFileSaveFilter; IsNew: Boolean);
procedure Localize;
public
{ Public declarations }
end;
var
CCTEditor: TCCTEditor;
implementation
uses dmActions;
{$R *.dfm}
procedure TCCTEditor.FormCreate(Sender: TObject);
var
Buf: Array[0..255] of Char;
hk: HKEY;
ds: DWORD;
S: String;
begin
// Almost all these assignments could be done at design time in the Object Inspector
// But in this demo we do not want to modify rvActionsResource
// (and we recommend to use a copy of it in your applications)
rvActionsResource.ModifyCaption;
rvActionsResource.rvActionSave1.OnDocumentFileChange := rvActionSave1DocumentFileChange;
// Code for making color-picking buttons stay pressed while a
// color-picker window is visible.
rvActionsResource.rvActionColor1.OnShowColorPicker := ColorPickerShow;
rvActionsResource.rvActionColor1.OnHideColorPicker := ColorPickerHide;
rvActionsResource.rvActionParaColor1.OnShowColorPicker := ColorPickerShow;
rvActionsResource.rvActionParaColor1.OnHideColorPicker := ColorPickerHide;
rvActionsResource.rvActionFontColor1.OnShowColorPicker := ColorPickerShow;
rvActionsResource.rvActionFontColor1.OnHideColorPicker := ColorPickerHide;
rvActionsResource.rvActionFontBackColor1.OnShowColorPicker := ColorPickerShow;
rvActionsResource.rvActionFontBackColor1.OnHideColorPicker := ColorPickerHide;
// Delphi 4 and 5 do not have ActionComponent property for actions.
// Coloring actions have a substitution - CallerControl property
// It is ignored in Delphi 6 and 7
rvActionsResource.rvActionParaColor1.CallerControl := ToolButton39;
rvActionsResource.rvActionFontBackColor1.CallerControl := ToolButton38;
rvActionsResource.rvActionFontColor1.CallerControl := ToolButton36;
{$IFDEF RICHVIEWDEF6}
// AutoComplete feature causes OnClick generation when editing combo-box's text.
// Since in OnClick we move input focus in RichViewEdit1, this effect is
// undesirable
cmbFont.AutoComplete := False;
cmbFontSize.AutoComplete := False;
{$ENDIF}
Localize;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -