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

📄 unit1.pas

📁 我的记事本
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, Menus, ExtCtrls, StdCtrls, ComCtrls, ToolWin, ActnList,
  ActnMan, ActnCtrls;

type
    TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    F1: TMenuItem;
    N1: TMenuItem;
    O1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    P1: TMenuItem;
    X1: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    ImageList1: TImageList;
    N7: TMenuItem;
    T1: TMenuItem;
    C1: TMenuItem;
    P2: TMenuItem;
    L1: TMenuItem;
    N8: TMenuItem;
    A1: TMenuItem;
    N9: TMenuItem;
    w1: TMenuItem;
    f2: TMenuItem;
    c2: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    h1: TMenuItem;
    N12: TMenuItem;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    ToolButton14: TToolButton;
    ToolButton15: TToolButton;
    ToolButton16: TToolButton;
    ToolButton17: TToolButton;
    ToolButton18: TToolButton;
    ToolButton19: TToolButton;
    ToolButton20: TToolButton;
    RichEdit1: TRichEdit;
    PopupMenu1: TPopupMenu;
    U1: TMenuItem;
    T2: TMenuItem;
    T3: TMenuItem;
    C3: TMenuItem;
    P3: TMenuItem;
    ActionList1: TActionList;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    FontDialog1: TFontDialog;
    ColorDialog1: TColorDialog;
    PrintDialog1: TPrintDialog;
    new: TAction;
    open: TAction;
    save: TAction;
    print: TAction;
    x2: TMenuItem;
    endf: TAction;
    ActionList2: TActionList;
    undo: TAction;
    cut: TAction;
    copy: TAction;
    paste: TAction;
    selall: TAction;
    StatusBar1: TStatusBar;
    del: TAction;
    D1: TMenuItem;
    N13: TMenuItem;
    ToolBar2: TToolBar;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    UpDown1: TUpDown;
    N14: TMenuItem;
    procedure newExecute(Sender: TObject);
    procedure openExecute(Sender: TObject);
    procedure saveExecute(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure printExecute(Sender: TObject);
    procedure endfExecute(Sender: TObject);
    procedure undoExecute(Sender: TObject);
    procedure cutExecute(Sender: TObject);
    procedure copyExecute(Sender: TObject);
    procedure pasteExecute(Sender: TObject);
    procedure A1Click(Sender: TObject);
    procedure w1Click(Sender: TObject);
    procedure f2Click(Sender: TObject);
    procedure c2Click(Sender: TObject);
    procedure ToolButton12Click(Sender: TObject);
    procedure ToolButton13Click(Sender: TObject);
    procedure ToolButton14Click(Sender: TObject);
    procedure ToolButton16Click(Sender: TObject);
    procedure ToolButton17Click(Sender: TObject);
    procedure ToolButton18Click(Sender: TObject);
    procedure ToolButton20Click(Sender: TObject);

    procedure CheckFileSave;
    procedure checkpos;
    procedure ActionList2Update(Action: TBasicAction;
      var Handled: Boolean);
    procedure delExecute(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure RichEdit1SelectionChange(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure N12Click(Sender: TObject);
    procedure GetFontNames;
    procedure ComboBox1Change(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure N14Click(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  wfilename:string;
  f:textfile;

implementation

uses Unit2;

{$R *.dfm}

procedure tform1.CheckFileSave;
var
  SaveResp: Integer;
begin
  if not richedit1.Modified then Exit;
  SaveResp := MessageDlg(Format('OK to overwrite %s', [wfilename]),
    mtConfirmation, mbYesNoCancel, 0);
  case SaveResp of
    idYes: saveExecute(Self);
    idNo: {Nothing};
    idCancel: Abort;
  end;
end;

procedure tform1.checkpos;
  var x,y:integer;
begin
  x:=richedit1.CaretPos.X+1;
  y:=richedit1.CaretPos.Y+1;
  statusbar1.Panels[0].Text:='欢迎使用';
  statusbar1.Panels[1].Text:='col:'+inttostr(y)+'   '+'row:'+inttostr(x);
end;

function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
  FontType: Integer; Data: Pointer): Integer; stdcall;
begin
  TStrings(Data).Add(LogFont.lfFaceName);
  Result := 1;
end;

procedure TForm1.GetFontNames;
var
  DC: HDC;
begin
  DC := GetDC(0);
  EnumFonts(DC, nil, @EnumFontsProc, Pointer(combobox1.Items));
  ReleaseDC(0, DC);
  combobox1.Sorted := True;
end;


procedure TForm1.newExecute(Sender: TObject);
begin
   checkfilesave;
   richedit1.Modified:=false;
   richedit1.Clear;
   wfilename:='NULL';
   form1.Caption:='新建文本文档-记事本';
end;

procedure TForm1.openExecute(Sender: TObject);
begin
  checkfilesave;
  if opendialog1.Execute then
    begin
      wfilename:=opendialog1.FileName;
      form1.Caption:=wfilename;
      richedit1.Lines.LoadFromFile(wfilename);
      richedit1.SetFocus;
      richedit1.Modified:=false;
    end;
end;

procedure TForm1.saveExecute(Sender: TObject);
begin
  if wfilename='NULL' then N3click(sender)
  else 
      richedit1.Lines.SaveToFile(wfilename);
end;

procedure TForm1.N3Click(Sender: TObject);
begin
   if SaveDialog1.Execute then
  begin
    if FileExists(SaveDialog1.FileName) then
      if MessageDlg(Format('OK to overwrite %s', [SaveDialog1.FileName]),
        mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit;
    richedit1.Lines.SaveToFile(SaveDialog1.FileName);
    wfilename:=savedialog1.filename;
    form1.Caption:=wfilename;
    richedit1.Modified := False;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  GetFontNames;
  wfilename:='NULL';
  richedit1.Modified:=false;
end;

procedure TForm1.printExecute(Sender: TObject);
begin
   if PrintDialog1.Execute then
        richedit1.Print(wfilename);
end;

procedure TForm1.endfExecute(Sender: TObject);
begin
  checkfilesave;
  close;
end;

procedure TForm1.undoExecute(Sender: TObject);
begin
  with richedit1 do
    if HandleAllocated then SendMessage(Handle, EM_UNDO, 0, 0);
end;

procedure TForm1.cutExecute(Sender: TObject);
begin
   richedit1.CutToClipboard;
end;

procedure TForm1.copyExecute(Sender: TObject);
begin
  richedit1.CopyToClipboard;
end;

procedure TForm1.pasteExecute(Sender: TObject);
begin
  richedit1.PasteFromClipboard
end;

procedure TForm1.A1Click(Sender: TObject);
begin
  richedit1.SelectAll;
  richedit1.SetFocus;
end;

procedure TForm1.w1Click(Sender: TObject);
begin
  if w1.Checked=false then
    begin
        w1.Checked:=true;
        richedit1.ScrollBars:=ssVertical;
        richedit1.WordWrap:=true;
    end
  else 
    begin
        w1.Checked:=false;
        richedit1.ScrollBars:=ssboth;
        richedit1.WordWrap:=false;
    end
end;

procedure TForm1.f2Click(Sender: TObject);
    var curtext:ttextattributes;
begin
    if richedit1.SelLength>0 then curtext:=richedit1.SelAttributes
    else curtext:=richedit1.DefAttributes;
    FontDialog1.Font.Assign(richedit1.SelAttributes);
    if FontDialog1.Execute then
    CurText.Assign(FontDialog1.Font);
    richedit1.SetFocus;
end;

procedure TForm1.c2Click(Sender: TObject);
  var curtext:ttextattributes;
begin
   if richedit1.SelLength>0 then curtext:=richedit1.SelAttributes
   else curtext:=richedit1.DefAttributes;
   with colordialog1 do
   if execute then
    curtext.Color:=colordialog1.Color;
end;

procedure TForm1.ToolButton12Click(Sender: TObject);
 var curtext:TTextAttributes;
begin
   if richedit1.SelLength>0 then curtext:=richedit1.SelAttributes
   else curtext:=richedit1.DefAttributes;
   if toolbutton12.Down then
     begin
        curtext.Style:=curtext.Style+[fsbold];
     end
   else
     begin
        curtext.Style:=curtext.Style-[fsbold];
     end;
end;

procedure TForm1.ToolButton13Click(Sender: TObject);
  var curtext:TTextAttributes;
begin
    if richedit1.SelLength>0 then curtext:=richedit1.SelAttributes
    else curtext:=richedit1.DefAttributes;
    if toolbutton13.Down then
     begin
        curtext.Style:=curtext.Style+[fsItalic];
     end
    else
       begin
        curtext.Style:=curtext.Style-[fsItalic];
       end;
end;

procedure TForm1.ToolButton14Click(Sender: TObject);
   var curtext:TTextAttributes;
begin
    if richedit1.SelLength>0 then curtext:=richedit1.SelAttributes
    else curtext:=richedit1.DefAttributes;
    if toolbutton14.Down then
       begin
         curtext.Style:=curtext.Style+[fsUnderline];
       end
    else
       begin
        curtext.Style:=curtext.Style-[fsUnderline];
       end;
end;

procedure TForm1.ToolButton16Click(Sender: TObject);
begin
   richedit1.Paragraph.Alignment := TAlignment(TControl(Sender).Tag);
end;

procedure TForm1.ToolButton17Click(Sender: TObject);
begin
   ToolButton16Click(sender);
end;

procedure TForm1.ToolButton18Click(Sender: TObject);
begin
  ToolButton16Click(sender);
end;

procedure TForm1.ToolButton20Click(Sender: TObject);
begin
  richedit1.Paragraph.Numbering := TNumberingStyle(Toolbutton20.Down);
end;

procedure TForm1.ActionList2Update(Action: TBasicAction;
  var Handled: Boolean);
begin
  if richedit1.SelLength>0 then
    begin
       cut.Enabled:=true;
       copy.Enabled:=true;
       del.Enabled:=true;
    end
  else
    begin
      cut.Enabled:=false;
      copy.Enabled:=false;
      del.Enabled:=false;
     end;
end;

procedure TForm1.delExecute(Sender: TObject);
begin
   richedit1.CutToClipboard;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
    checkpos;
end;

procedure TForm1.RichEdit1SelectionChange(Sender: TObject);
begin
   checkpos;
end;

procedure TForm1.N11Click(Sender: TObject);
begin
  n11.Checked:=not n11.Checked;
  statusbar1.Visible:=not statusbar1.Visible;
end;

procedure TForm1.N13Click(Sender: TObject);
begin
  n13.Checked:=not n13.checked;
  toolbar1.Visible:=not toolbar1.Visible;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   checkfilesave;  
end;

procedure TForm1.N12Click(Sender: TObject);
begin
  with TAboutBox.Create(Self) do
  try
    ShowModal;
  finally
    Free;
  end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var curtext:TTextAttributes;
begin
  if richedit1.SelLength>0 then curtext:=richedit1.SelAttributes
  else curtext:=richedit1.DefAttributes;
  curText.Name := Combobox1.Items[combobox1.ItemIndex];
end;

procedure TForm1.Edit1Change(Sender: TObject);
var curtext:TTextAttributes;
begin
   if richedit1.SelLength>0 then curtext:=richedit1.SelAttributes
   else curtext:=richedit1.DefAttributes;
   curtext.Size := StrToInt(edit1.Text);
end;

procedure TForm1.N14Click(Sender: TObject);
begin
  n14.Checked:=not n14.checked;
  toolbar2.Visible:=not toolbar2.Visible;
end;

end.

⌨️ 快捷键说明

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