📄 unit1.pas
字号:
unit Unit1;
interface
uses
Forms, Dialogs, ImgList, Controls, Menus, ProfDHTMLEdit, StdCtrls,
ComCtrls, Classes, ToolWin;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
ToolBar1: TToolBar;
ImageListToolBar1: TImageList;
ToolBar2: TToolBar;
ImageListToolBar2: TImageList;
StatusBar: TStatusBar;
ComboBoxFontName: TComboBox;
ComboBoxFontHTMLSize: TComboBox;
OpenDialogBackground: TOpenDialog;
ColorDialog1: TColorDialog;
MenuItemFile: TMenuItem;
MenuItemEdit: TMenuItem;
MenuItemView: TMenuItem;
MenuItemInsert: TMenuItem;
MenuItemFormat: TMenuItem;
MenuItemTable: TMenuItem;
MenuItemHelp: TMenuItem;
MenuItemFileNew: TMenuItem;
MenuItemFileOpen: TMenuItem;
MenuItemFileSeparator1: TMenuItem;
MenuItemFileSave: TMenuItem;
MenuItemFileSaveAs: TMenuItem;
MenuItemFileSeparator2: TMenuItem;
MenuItemFilePageSetup: TMenuItem;
MenuItemFilePrintPreview: TMenuItem;
MenuItemFilePrint: TMenuItem;
MenuItemFileSeparator3: TMenuItem;
MenuItemFileExit: TMenuItem;
MenuItemEditUndo: TMenuItem;
MenuItemEditRedo: TMenuItem;
MenuItemEditSeparator1: TMenuItem;
MenuItemEditCut: TMenuItem;
MenuItemEditCopy: TMenuItem;
MenuItemEditPaste: TMenuItem;
MenuItemEditSeparator2: TMenuItem;
MenuItemEditClear: TMenuItem;
MenuItemEditSelectAll: TMenuItem;
MenuItemEditSeparator3: TMenuItem;
MenuItemEditFind: TMenuItem;
MenuItemViewTextSize: TMenuItem;
MenuItemViewTextSizeLargest: TMenuItem;
MenuItemViewTextSizeLarger: TMenuItem;
MenuItemViewTextSizeMedium: TMenuItem;
MenuItemViewTextSizeSmaller: TMenuItem;
MenuItemViewTextSizeSmallest: TMenuItem;
MenuItemViewSeparator1: TMenuItem;
MenuItemViewDetails: TMenuItem;
MenuItemViewSource: TMenuItem;
MenuItemInsertPicture: TMenuItem;
MenuItemInsertHorizontalLine: TMenuItem;
MenuItemInsertSeparator1: TMenuItem;
MenuItemInsertHyperlink: TMenuItem;
MenuItemInsertSeparator2: TMenuItem;
MenuItemInsertHTML: TMenuItem;
MenuItemInsertComment: TMenuItem;
MenuItemInsertSeparator3: TMenuItem;
MenuItemInsertControl: TMenuItem;
MenuItemInsertTextBox: TMenuItem;
MenuItemInsertTextArea: TMenuItem;
MenuItemInsertCheckBox: TMenuItem;
MenuItemInsertRadioButton: TMenuItem;
MenuItemInsertDropdownBox: TMenuItem;
MenuItemInsertListBox: TMenuItem;
MenuItemInsertButton: TMenuItem;
MenuItemInsertIframe: TMenuItem;
MenuItemInsertMarquee: TMenuItem;
MenuItemInsertSeparator4: TMenuItem;
MenuItemInsertObject: TMenuItem;
MenuItemInsertSeparator5: TMenuItem;
MenuItemInsertLineBreak: TMenuItem;
MenuItemInsertNoBreakSpace: TMenuItem;
MenuItemFormatStyle: TMenuItem;
MenuItemFormatFont: TMenuItem;
MenuItemFormatParagraph: TMenuItem;
MenuItemParagraphAlignment: TMenuItem;
MenuItemJustifyNone: TMenuItem;
MenuItemJustifyLeft: TMenuItem;
MenuItemJustifyCenter: TMenuItem;
MenuItemJustifyRight: TMenuItem;
MenuItemJustifyFull: TMenuItem;
MenuItemParagraphBullets: TMenuItem;
MenuItemNumbers: TMenuItem;
MenuItemBullets: TMenuItem;
MenuItemBulletsNone: TMenuItem;
MenuItemFormatSeparator1: TMenuItem;
MenuItemFormatIncreaseIndent: TMenuItem;
MenuItemFormatDecreaseIndent: TMenuItem;
MenuItemFormatSeparator2: TMenuItem;
MenuItemFormatToggleAbsolutePositioning: TMenuItem;
MenuItemFormatSeparator3: TMenuItem;
MenuItemFormatBackground: TMenuItem;
MenuItemBackgroundPicture: TMenuItem;
MenuItemBackgroundChoose: TMenuItem;
MenuItemBackgroundClear: TMenuItem;
MenuItemBackgroundColor: TMenuItem;
MenuItemFormatPageProperties: TMenuItem;
MenuItemTableInsert: TMenuItem;
MenuItemTableInsertTable: TMenuItem;
MenuItemTableInsertColumn: TMenuItem;
MenuItemTableInsertRow: TMenuItem;
MenuItemTableInsertCell: TMenuItem;
MenuItemTableDelete: TMenuItem;
MenuItemTableDeleteColumn: TMenuItem;
MenuItemTableDeleteRow: TMenuItem;
MenuItemTableDeleteCell: TMenuItem;
MenuItemTableSeparator1: TMenuItem;
MenuItemTableMergeCells: TMenuItem;
MenuItemTableSplitCell: TMenuItem;
MenuItemTableSeparator2: TMenuItem;
MenuItemTableProperties: TMenuItem;
MenuItemTableSeparator3: TMenuItem;
MenuItemTableShowBorders: TMenuItem;
MenuItemAbout: TMenuItem;
ToolButtonNew: TToolButton;
ToolButtonOpen: TToolButton;
ToolButtonSave: TToolButton;
ToolButtonSeparator1: TToolButton;
ToolButtonPrint: TToolButton;
ToolButtonPreview: TToolButton;
ToolButtonSeparator2: TToolButton;
ToolButtonCut: TToolButton;
ToolButtonCopy: TToolButton;
ToolButtonPaste: TToolButton;
ToolButtonSeparator3: TToolButton;
ToolButtonUndo: TToolButton;
ToolButtonRedo: TToolButton;
ToolButtonSeparator4: TToolButton;
ToolButtonSeparator5: TToolButton;
ToolButtonBold: TToolButton;
ToolButtonItalic: TToolButton;
ToolButtonUnderline: TToolButton;
ToolButtonSeparator6: TToolButton;
ToolButtonNumbering: TToolButton;
ToolButtonBullets: TToolButton;
ToolButtonDecInd: TToolButton;
ToolButtonIncInd: TToolButton;
ToolButtonSeparator7: TToolButton;
ToolButtonJustifyLeft: TToolButton;
ToolButtonJustifyCenter: TToolButton;
ToolButtonJustifyRight: TToolButton;
ToolButtonJustifyFull: TToolButton;
ToolButtonSeparator8: TToolButton;
ToolButtonInsertHorizontalLine: TToolButton;
ToolButtonInsertHyperlink: TToolButton;
ToolButtonInsertPicture: TToolButton;
ToolButtonSeparator9: TToolButton;
ToolButtonBackColor: TToolButton;
ToolButtonForeColor: TToolButton;
Editor: TProfDHTMLEdit2;
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure ComboBoxFontNameChange(Sender: TObject);
procedure ComboBoxFontHTMLSizeChange(Sender: TObject);
procedure ComboBoxFontHTMLSizeCloseUp(Sender: TObject);
procedure ComboBoxFontNameCloseUp(Sender: TObject);
procedure EditorDisplayChanged(Sender: TObject);
procedure EditorMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure EditorTimeout(Sender: TObject);
procedure MenuItemFileNewClick(Sender: TObject);
procedure MenuItemFileOpenClick(Sender: TObject);
procedure MenuItemFileSaveClick(Sender: TObject);
procedure MenuItemFileSaveAsClick(Sender: TObject);
procedure MenuItemFilePageSetupClick(Sender: TObject);
procedure MenuItemFilePrintPreviewClick(Sender: TObject);
procedure MenuItemFilePrintClick(Sender: TObject);
procedure MenuItemFileExitClick(Sender: TObject);
procedure MenuItemEditUndoClick(Sender: TObject);
procedure MenuItemEditRedoClick(Sender: TObject);
procedure MenuItemEditCutClick(Sender: TObject);
procedure MenuItemEditCopyClick(Sender: TObject);
procedure MenuItemEditPasteClick(Sender: TObject);
procedure MenuItemEditClearClick(Sender: TObject);
procedure MenuItemEditSelectAllClick(Sender: TObject);
procedure MenuItemEditFindClick(Sender: TObject);
procedure MenuItemViewDetailsClick(Sender: TObject);
procedure MenuItemViewTextSizeLargestClick(Sender: TObject);
procedure MenuItemViewTextSizeLargerClick(Sender: TObject);
procedure MenuItemViewTextSizeMediumClick(Sender: TObject);
procedure MenuItemViewTextSizeSmallerClick(Sender: TObject);
procedure MenuItemViewTextSizeSmallestClick(Sender: TObject);
procedure MenuItemViewSourceClick(Sender: TObject);
procedure MenuItemInsertPictureClick(Sender: TObject);
procedure MenuItemInsertHyperlinkClick(Sender: TObject);
procedure MenuItemInsertHorizontalLineClick(Sender: TObject);
procedure MenuItemInsertHTMLClick(Sender: TObject);
procedure MenuItemInsertCommentClick(Sender: TObject);
procedure MenuItemInsertTextBoxClick(Sender: TObject);
procedure MenuItemInsertTextAreaClick(Sender: TObject);
procedure MenuItemInsertCheckBoxClick(Sender: TObject);
procedure MenuItemInsertRadioButtonClick(Sender: TObject);
procedure MenuItemInsertDropdownBoxClick(Sender: TObject);
procedure MenuItemInsertListBoxClick(Sender: TObject);
procedure MenuItemInsertButtonClick(Sender: TObject);
procedure MenuItemInsertIframeClick(Sender: TObject);
procedure MenuItemInsertMarqueeClick(Sender: TObject);
procedure MenuItemInsertLineBreakClick(Sender: TObject);
procedure MenuItemInsertNoBreakSpaceClick(Sender: TObject);
procedure MenuItemInsertObjectClick(Sender: TObject);
procedure MenuItemFormatFontClick(Sender: TObject);
procedure MenuItemFormatPagePropertiesClick(Sender: TObject);
procedure MenuItemFormatToggleAbsolutePositioningClick(Sender: TObject);
procedure MenuItemBackgroundColorClick(Sender: TObject);
procedure MenuItemFormatIncreaseIndentClick(Sender: TObject);
procedure MenuItemFormatDecreaseIndentClick(Sender: TObject);
procedure MenuItemJustifyNoneClick(Sender: TObject);
procedure MenuItemJustifyLeftClick(Sender: TObject);
procedure MenuItemJustifyCenterClick(Sender: TObject);
procedure MenuItemJustifyRightClick(Sender: TObject);
procedure MenuItemJustifyFullClick(Sender: TObject);
procedure MenuItemNumbersClick(Sender: TObject);
procedure MenuItemBulletsClick(Sender: TObject);
procedure MenuItemBulletsNoneClick(Sender: TObject);
procedure MenuItemBackgroundChooseClick(Sender: TObject);
procedure MenuItemBackgroundClearClick(Sender: TObject);
procedure MenuItemTableInsertTableClick(Sender: TObject);
procedure MenuItemTableInsertColumnClick(Sender: TObject);
procedure MenuItemTableInsertRowClick(Sender: TObject);
procedure MenuItemTableDeleteColumnClick(Sender: TObject);
procedure MenuItemTableDeleteRowClick(Sender: TObject);
procedure MenuItemTableMergeCellsClick(Sender: TObject);
procedure MenuItemTableSplitCellClick(Sender: TObject);
procedure MenuItemTablePropertiesClick(Sender: TObject);
procedure MenuItemTableInsertCellClick(Sender: TObject);
procedure MenuItemTableDeleteCellClick(Sender: TObject);
procedure MenuItemTableShowBordersClick(Sender: TObject);
procedure MenuItemAboutClick(Sender: TObject);
procedure ToolButtonNewClick(Sender: TObject);
procedure ToolButtonOpenClick(Sender: TObject);
procedure ToolButtonSaveClick(Sender: TObject);
procedure ToolButtonPrintClick(Sender: TObject);
procedure ToolButtonPreviewClick(Sender: TObject);
procedure ToolButtonCutClick(Sender: TObject);
procedure ToolButtonCopyClick(Sender: TObject);
procedure ToolButtonPasteClick(Sender: TObject);
procedure ToolButtonUndoClick(Sender: TObject);
procedure ToolButtonRedoClick(Sender: TObject);
procedure ToolButtonBoldClick(Sender: TObject);
procedure ToolButtonItalicClick(Sender: TObject);
procedure ToolButtonUnderlineClick(Sender: TObject);
procedure ToolButtonNumberingClick(Sender: TObject);
procedure ToolButtonBulletsClick(Sender: TObject);
procedure ToolButtonDecIndClick(Sender: TObject);
procedure ToolButtonIncIndClick(Sender: TObject);
procedure ToolButtonJustifyLeftClick(Sender: TObject);
procedure ToolButtonJustifyCenterClick(Sender: TObject);
procedure ToolButtonJustifyRightClick(Sender: TObject);
procedure ToolButtonJustifyFullClick(Sender: TObject);
procedure ToolButtonInsertHorizontalLineClick(Sender: TObject);
procedure ToolButtonInsertHyperlinkClick(Sender: TObject);
procedure ToolButtonInsertPictureClick(Sender: TObject);
procedure ToolButtonBackColorClick(Sender: TObject);
procedure ToolButtonForeColorClick(Sender: TObject);
private
FID: Integer;
procedure FileNew;
procedure FileOpen;
function FileSave: Boolean;
procedure SelectStyle(Sender: TObject);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Windows, Messages, SysUtils,
Unit2, Unit3, Unit4, Unit5, Unit6, Unit7;
{$R *.dfm}
resourcestring
sSaveChanges = 'Do you want to save the changes you made to %s?';
sUntitled = 'Untitled';
sTimeout = 'The operation timed out.';
function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
FontType: Integer; Strings: TStrings): Integer; stdcall;
begin
Strings.Add(LogFont.lfFaceName);
Result := 1
end;
type TSetTextEx = record
flags: DWORD;
codepage: UINT;
end;
procedure SetRichEditText(var ARichEdit: TRichEdit; const AText: WideString);
const
ST_DEFAULT = 0;
EM_SETTEXTEX = WM_USER + 97;
var
P: TSetTextEx;
lr: LRESULT;
begin
P.codepage := 1200;
P.flags := ST_DEFAULT;
lr := SendMessage(ARichEdit.Handle, EM_SETTEXTEX, WPARAM(@P), LPARAM(PWideChar(AText)));
if lr <> 1 then
ARichEdit.Text := AText
end;
procedure TForm1.FormCreate(Sender: TObject);
var
InitialDir: AnsiString;
Len: Integer;
DC: HDC;
begin
InitialDir := '';
Len := GetEnvironmentVariable('CommonProgramFiles', nil, 0);
if Len > 0 then
begin
SetLength(InitialDir, Len - 1);
GetEnvironmentVariable('CommonProgramFiles', PChar(InitialDir), Len)
end;
InitialDir := InitialDir + '\Microsoft Shared\Stationery';
if DirectoryExists(InitialDir) then
OpenDialogBackground.InitialDir := InitialDir
else
OpenDialogBackground.InitialDir := ExtractFilePath(Application.ExeName);
DC := GetDC(0);
EnumFonts(DC, nil, @EnumFontsProc, Pointer(ComboBoxFontName.Items));
ReleaseDC(0, DC);
ComboBoxFontName.Sorted := True
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
FileName: AnsiString;
begin
if Editor.Modified then
begin
FileName := Editor.FileName;
if FileName = '' then
FileName := sUntitled;
case MessageDlg(Format(sSaveChanges, [FileName]), mtConfirmation, mbYesNoCancel, 0) of
idYes:
if not FileSave then
CanClose := False;
idNo:
;
idCancel:
CanClose := False
end
end
end;
procedure TForm1.MenuItemFileExitClick(Sender: TObject);
begin
Close
end;
procedure TForm1.MenuItemFilePrintPreviewClick(Sender: TObject);
begin
Editor.PrintPreviewDialog
end;
procedure TForm1.MenuItemFilePrintClick(Sender: TObject);
begin
Editor.PrintDialog
end;
procedure TForm1.MenuItemEditUndoClick(Sender: TObject);
begin
Editor.Undo
end;
procedure TForm1.MenuItemEditRedoClick(Sender: TObject);
begin
Editor.Redo
end;
procedure TForm1.MenuItemEditCutClick(Sender: TObject);
begin
Editor.CutToClipboard
end;
procedure TForm1.MenuItemEditCopyClick(Sender: TObject);
begin
Editor.CopyToClipboard
end;
procedure TForm1.MenuItemEditPasteClick(Sender: TObject);
begin
Editor.PasteFromClipboard
end;
procedure TForm1.MenuItemEditClearClick(Sender: TObject);
begin
Editor.ClearSelection
end;
procedure TForm1.MenuItemEditSelectAllClick(Sender: TObject);
begin
Editor.SelectAll
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -