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

📄 utextedit.pas

📁 同学做的多文档编辑器
💻 PAS
字号:
unit UTextEdit;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
  StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
  ActnList, ToolWin, ImgList, ExtActns, Tabs;

type
  TMainForm = class(TForm)
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    FileNewItem: TMenuItem;
    FileOpenItem: TMenuItem;
    FileCloseItem: TMenuItem;
    Window1: TMenuItem;
    N1: TMenuItem;
    FileExitItem: TMenuItem;
    WindowCascadeItem: TMenuItem;
    WindowTileItem: TMenuItem;
    WindowArrangeItem: TMenuItem;
    OpenDialog: TOpenDialog;
    FileSaveItem: TMenuItem;
    FileSaveAsItem: TMenuItem;
    Edit1: TMenuItem;
    CutItem: TMenuItem;
    CopyItem: TMenuItem;
    PasteItem: TMenuItem;
    ActionList1: TActionList;
    EditCut1: TEditCut;
    EditCopy1: TEditCopy;
    EditPaste1: TEditPaste;
    FileNew1: TAction;
    FileSave1: TAction;
    FileExit1: TAction;
    FileOpen1: TAction;
    FileSaveAs1: TAction;
    WindowCascade1: TWindowCascade;
    WindowTileHorizontal1: TWindowTileHorizontal;
    WindowArrangeAll1: TWindowArrange;
    FileClose1: TWindowClose;
    format1: TMenuItem;
    RichEditAlignLeft1: TRichEditAlignLeft;
    RichEditAlignRight1: TRichEditAlignRight;
    RichEditAlignCenter1: TRichEditAlignCenter;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    font1: TMenuItem;
    N11: TMenuItem;
    EditSelectAll1: TEditSelectAll;
    EditDelete1: TEditDelete;
    N12: TMenuItem;
    selectall1: TMenuItem;
    FilePrintSetup1: TFilePrintSetup;
    PrintDlg1: TPrintDlg;
    print1: TMenuItem;
    printsetup1: TMenuItem;
    SaveDialog1: TSaveDialog;
    PopupMenu1: TPopupMenu;
    copy1: TMenuItem;
    paste1: TMenuItem;
    cut1: TMenuItem;
    FontDialog1: TFontDialog;
    procedure FileNew1Execute(Sender: TObject);
    procedure FileOpen1Execute(Sender: TObject);
    procedure FileExit1Execute(Sender: TObject);
    procedure font1Click(Sender: TObject);
    procedure FileSaveAs1Execute(Sender: TObject);
    procedure FileSave1Execute(Sender: TObject);
  private
    { Private declarations }
    procedure CreateMDIChild(const Name: string);
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;
  WinNums : integer ;
  OpenName,ActiveFileName : String ;

implementation

{$R *.dfm}

uses CHILDWIN;

procedure TMainForm.CreateMDIChild(const Name: string);
var
  Child: TMDIChild;
begin
  Child := TMDIChild.Create(Application);
  if name = '未命名的' then
  Child.RichEdit1.Lines.Clear;
  Child.Caption := Name;
  if FileExists(Name) then
  Child.RichEdit1.Lines.LoadFromFile(Name);
end;

procedure TMainForm.FileNew1Execute(Sender: TObject);
begin
  CreateMDIChild('未命名的');
  Edit1.Visible := true;
  format1.Visible := true;
  FileSaveItem.Visible := true ;
  FileSaveAsItem.Visible := true ;
  FileSaveItem.Enabled := true;
  FileSaveAsItem.Enabled := true;
  print1.Visible := true;
  Printsetup1.Visible := true;
  FileCloseItem.Visible := true;
end;

procedure TMainForm.FileOpen1Execute(Sender: TObject);
begin
  if OpenDialog.Execute then
  begin
    CreateMDIChild(OpenDialog.FileName);
    Edit1.Visible := true;
    format1.Visible := true;
    FileSaveItem.Visible := true ;
    FileSaveAsItem.Visible := true ;
    FileSaveItem.Enabled := true;
    FileSaveAsItem.Enabled := true;
    print1.Visible := true;
    Printsetup1.Visible := true;
    FileCloseItem.Visible := true;
  end;
end;

procedure TMainForm.FileExit1Execute(Sender: TObject);
begin
  Close;
end;

procedure TMainForm.font1Click(Sender: TObject);
begin
  if ActiveMDIChild <> nil then
  with ActiveMDIChild as TMDIChild do
  if fontDialog1.Execute then
     RichEdit1.Font:= FontDialog1.Font;
end;
procedure TMainForm.FileSaveAs1Execute(Sender: TObject);
begin
  if ActiveMDIChild <> nil then
  begin
    if SaveDialog1.Execute then
    begin
      if FileExists(SaveDialog1.FileName) then
      begin
        if MessageDlg('文档已存在,要替换它吗?',mtConfirmation,
           [mbYes,mbNo],0)=mrYes then
        with ActiveMDIChild As TMDiChild do
        begin
          RichEdit1.lines.Savetofile(SaveDialog1.FileName);
          Caption := SaveDialog1.FileName ;
          ActiveFileName := SaveDialog1.FileName ;
        end;
      end
      else
      with ActiveMDIChild As TMDIChild do
      begin
        RichEdit1.lines.Savetofile(SaveDialog1.FileName);
        Caption := SaveDialog1.FileName ;
        ActiveFileName := SaveDialog1.FileName ;
     end;
    end;
  end;
end;

procedure TMainForm.FileSave1Execute(Sender: TObject);
begin
  ActiveFileName := ActiveMDIChild.Caption ;
  if ActiveFileName = '未命名的' then
  FileSaveAs1Execute(sender)
  else
  begin
    if ActiveMDIChild <> nil then
    with ActiveMDIChild As TMDIChild do
    begin
        RichEdit1.Lines.SaveToFile(ActiveFileName) ;
    end;
  end;
end;

end.

⌨️ 快捷键说明

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