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

📄 unit1.pas

📁 Prof DHTML Edit 2.0.3.7 for delphi
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -