unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, ComCtrls, ExtCtrls, ToolWin, ImgList; type TForm1 = class(TForm MainMenu1: TMainMenu; RichEdit1: TRichEdit; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; FontDialog1: TFontDialog; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; N9: TMenuItem; N10: TMenuItem; N11: TMenuItem; N12: TMenuItem; N13: TMenuItem; N14: TMenuItem; N15: TMenuItem; N16: TMenuItem; N17: TMenuItem; N18: TMenuItem; N19: TMenuItem; N20: TMenuItem; PopupMenu1: TPopupMenu; FindDialog1: TFindDialog; N21: TMenuItem; PrintDialog1: TPrintDialog; N22: TMenuItem; N23: TMenuItem; N24: TMenuItem; N25: TMenuItem; N26: TMenuItem; N27: TMenuItem; N28: TMenuItem; N31: TMenuItem; N32: TMenuItem; S1: TMenuItem; Timer1: TTimer; StatusBar2: TStatusBar; ToolBar1: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton7: TToolButton; ToolButton8: TToolButton; ToolButton9: TToolButton; ToolButton10: TToolButton; ToolButton11: TToolButton; ToolButton12: TToolButton; ToolButton13: TToolButton; ImageList1: TImageList; procedureN2Click(Sender: TObject; procedure N3Click(Sender: TObject; procedureN7Click(Sender: TObject; procedure N8Click(Sender: TObject; procedureN9Click(Sender: TObject; procedure N14Click(Sender: TObject; procedureN21Click(Sender: TObject; procedure N16Click(Sender: TObject; procedureN17Click(Sender: TObject; procedure N18Click(Sender: TObject; procedureN12Click(Sender: TObject; procedure N20Click(Sender: TObject; procedureN6Click(Sender: TObject; procedure S1Click(Sender: TObject; procedureFindDialog1Find(Sender: TObject; procedure Timer1Timer(Sender: TObject; procedure N24Click(Sender: TObject; procedure N25Click(Sender: TObject; procedureN26Click(Sender: TObject; procedure N27Click(Sender: TObject; procedureN28Click(Sender: TObject; procedure RichEdit1MouseMove(Sender: TObject; Shift:TShiftState; X, Y: Integer; procedure RichEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState; procedure RichEdit1Enter(Sender: TObject; private { Private declarations } public { Public declarations } end; var Form1: TForm1; filename: string; temp:integer; implementation {$R *.dfm} procedure TForm1.N2Click(Sender: TObject; begin if opendialog1.Execute then begin Form1.Caption:=ExtractFileName(OpenDialog1.FileName;richedit1.lines.LoadFromFile(opendialog1.FileName; end end; procedureTForm1.N3Click(Sender: TObject; begin if filename='' then begin if savedialog1.Execute then begin richedit1.Lines.SaveToFile(savedialog1.FileName;filename:=savedialog1.filename; end end elserichedit1.Lines.SaveToFile(savedialog1.FileName; end; procedureTForm1.N7Click(Sender: TObject; begin fontdialog1.Execute;richedit1.SelAttributes.Assign(fontdialog1.Font; end; procedure TForm1.N8Click(Sender: TObject; begin if RichEdit1.Modified then begin temp:=MessageDlg('内容发生改变,是否要保存',mtwarning,mbyesnocancel,0; if temp=6 then begin Form1.N3Click(Sender ; RichEdit1.Lines.Clear; end; if temp=7 then RichEdit1.Lines.Clear; end elseRichEdit1.Lines.Clear; end; procedure TForm1.N9Click(Sender: TObject; begin with savedialog1 do if execute then begin richedit1.Lines.SaveToFile (filename;opendialog1.FileName := filename; end; end; procedure TForm1.N14Click(Sender: TObject; begin richedit1.Perform(EM_UNDO,0,0; end; procedureTForm1.N21Click(Sender: TObject; begin richedit1.SelectAll; end; procedureTForm1.N16Click(Sender: TObject; begin richedit1.cuttoclipboard; end; procedure TForm1.N17Click(Sender: TObject; begin richedit1.copyToClipboard; end; procedure TForm1.N18Click(Sender: TObject; begin richedit1.PasteFromClipboard; end; procedure TForm1.N12Click(Sender: TObject; begin PrintDialog1.Execute; end; procedureTForm1.N20Click(Sender: TObject; begin finddialog1.Execute; end; procedureTForm1.N6Click(Sender: TObject; begin if N6.Checked then begin N6.Checked:=false; RichEdit1.WordWrap:=False; end else begin n6.Checked:=True;RichEdit1.WordWrap:=True; end end; procedure TForm1.S1Click(Sender: TObject; begin if s1.Checked then begin s1.Checked:=false; statusbar2.visible:=False; end else begin s1.Checked:=True; statusbar2.visible:=True; end end; procedureTForm1.FindDialog1Find(Sender: TObject; Var findat:longint; startpos,toend:integer; begin with richedit1 do begin if sellength<>0 then startpos:=selstart+sellength else startpos:=0; toend:=length(text-startpos;findat:=findtext(FindDialog1.FindText,startpos,toend,[stMatchCase]; if findat<>-1 then begin setfocus ; SelStart:=findat; SelLength:=Length(FindDialog1.FindText end; end; end; procedure TForm1.Timer1Timer(Sender: TObject; beginstatusbar2.Panels[1].Text:=timetostr(time(; end; procedure TForm1.N24Click(Sender: TObject; begin richedit1.Perform(EM_UNDO,0,0; end; procedureTForm1.N25Click(Sender: TObject; begin richedit1.cuttoclipboard; end; procedure TForm1.N26Click(Sender: TObject; begin richedit1.copyToClipboard; end; procedure TForm1.N27Click(Sender: TObject; begin richedit1.PasteFromClipboard; end; procedure TForm1.N28Click(Sender: TObject; begin richedit1.SelectAll; end; procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer; begin StatusBar2.Panels[0].Text:=IntToStr(RichEdit1.CaretPos.Y+1+'行'+inttostr(RichEdit1.CaretPos.X+1+'列' end; procedureTForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState; begin if Key=13 then StatusBar2.Panels[0].Text:=IntToStr(RichEdit1.CaretPos.Y+2+'行'+'1列' else StatusBar2.Panels[0].Text:=IntToStr(RichEdit1.CaretPos.Y+1+ '行'+inttostr(RichEdit1.CaretPos.X+2+'列' end; procedure TForm1.RichEdit1Enter(Sender: TObject; begin StatusBar2.Panels[0].Text:=IntToStr(RichEdit1.CaretPos.Y+1+'行'+inttostr(RichEdit1.CaretPos.X+1+'列' end; end.。