这里只放主要代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, ComCtrls, ToolWin, ExtCtrls, StdCtrls, Menus, ExtActns,
StdActns, ActnList;
type
TForm1 = class(TForm)
ImageList1: TImageList;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
StatusBar1: TStatusBar;
Timer1: TTimer;
OpenDialog1: TOpenDialog;
RichEdit1: TRichEdit;
SaveDialog1: TSaveDialog;
ToolButton11: TToolButton;
FontDialog1: TFontDialog;
ToolButton12: TToolButton;
FindDialog1: TFindDialog;
ToolButton13: TToolButton;
ReplaceDialog1: TReplaceDialog;
ToolButton14: TToolButton;
ColorDialog1: TColorDialog;
ToolButton15: TToolButton;
PrintDialog1: TPrintDialog;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
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;
N21: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
ActionList1: TActionList;
EditCut1: TEditCut;
EditCopy1: TEditCopy;
EditPaste1: TEditPaste;
EditSelectAll1: TEditSelectAll;
EditUndo1: TEditUndo;
EditDelete1: TEditDelete;
RichEditBold1: TRichEditBold;
RichEditItalic1: TRichEditItalic;
RichEditUnderline1: TRichEditUnderline;
N25: TMenuItem;
PopupMenu1: TPopupMenu;
Copy1: TMenuItem;
Paste1: TMenuItem;
Cut1: TMenuItem;
SelectAll1: TMenuItem;
Delete1: TMenuItem;
N26: TMenuItem;
N27: TMenuItem;
N28: TMenuItem;
Help1: TMenuItem;
About1: TMenuItem;
Contents1: TMenuItem;
RichEditAlignLeft1: TRichEditAlignLeft;
RichEditAlignRight1: TRichEditAlignRight;
RichEditAlignCenter1: TRichEditAlignCenter;
Center1: TMenuItem;
AlignLeft1: TMenuItem;
AlignRight1: TMenuItem;
C1: TMenuItem;
N29: TMenuItem;
N30: TMenuItem;
N31: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure RichEdit1SelectionChange(Sender: TObject);
procedure RichEdit1Change(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton11Click(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure FindDialog1Find(Sender: TObject);
procedure ToolButton13Click(Sender: TObject);
procedure ReplaceDialog1Replace(Sender: TObject);
procedure ToolButton14Click(Sender: TObject);
procedure ToolButton15Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure Contents1Click(Sender: TObject);
procedure C1Click(Sender: TObject);
procedure N30Click(Sender: TObject);
procedure N31Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit5, Unit6;
{$R *.dfm}
{此过程用于窗口创建时状态栏时间的显示}
procedure TForm1.FormCreate(Sender: TObject);
begin
StatusBar1.Panels[3].Text:=DateTimeToStr(Now);
end;
{此过程用于 动态修改状态栏时间}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[3].Text:=DateTimeToStr(Now);
end;
{此过程用于显示光标所在的位置}
procedure TForm1.RichEdit1SelectionChange(Sender: TObject);
begin
StatusBar1.Panels[0].Text:='位置:'+IntToStr(RichEdit1.CaretPos.Y+1)+'行'
+IntToStr(RichEdit1.CaretPos.X)+'列';
end;
{此过程用于在状态栏显示文件是否被修改}
procedure TForm1.RichEdit1Change(Sender: TObject);
begin
if RichEdit1.Modified then
StatusBar1.Panels[1].Text:='修改'
end;
{打开文本文件操作}
procedure TForm1.ToolButton2Click(Sender: TObject);
var
FName:string;
begin
with OpenDialog1 do
begin
Filter:='文本文件(*.txt|*.txt'; {文件类型过滤器,防止打开非文本文件}
DefaultExt:='txt';
Filename:='';
Options:=[ofHideReadOnly,ofFileMustExist,ofPathMustExist];
if execute
then
if ofExtensionDifferent in Options
then MessageDlg('这不是文本文件。',mtError,[mbOK],0)
else
begin
RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);
FName:=OpenDialog1.FileName;
StatusBar1.Panels[2].Text:=FName;
end;
end;
end;
{此过程用于保存文件}
procedure TForm1.ToolButton3Click(Sender: TObject);
var
fname:string;
begin
with SaveDialog1 do
if Execute
then
begin
DefaultExt:='txt';
RichEdit1.Lines.SaveToFile(FileName);
RichEdit1.Modified:=false;
FName:=SaveDialog1.FileName;
StatusBar1.Panels[2].Text:=FName;
end;
end;
{改变字体的过程}
procedure TForm1.ToolButton11Click(Sender: TObject);
begin
If RichEdit1.SelLength>0
then
begin
FontDialog1.Font.Assign(RichEdit1.SelAttributes);{使用FontDialog}
if FontDialog1.Execute
then RichEdit1.SelAttributes.Assign(FontDialog1.Font);
end
else
ShowMessage('请先选中一段文本。') {没有选中任何字}
end;
{此过程用于启动查找}
procedure TForm1.ToolButton12Click(Sender: TObject);
begin
FindDialog1.Execute
end;
{通过 FindDialog 提供的方法来实现查找文本}
procedure TForm1.FindDialog1Find(Sender: TObject);
var
FoundPos,InitPos:integer;
begin
InitPos:=RichEdit1.SelStart+RichEdit1.SelLength;
FoundPos:=Pos(FindDialog1.FindText,Copy(RichEdit1.Text,
InitPos+1,Length(RichEdit1.Text)-InitPos));
{用pos函数定位字符串位置}
if FoundPos>0 {文档中不止一个}
then
begin
RichEdit1.SetFocus;
RichEdit1.SelStart:=InitPos+FoundPos-1;
RichEdit1.SelLength:=Length(FindDialog1.FindText);
end
else {没有找到}
MessageDlg('没有找到要查找的文本',mtInFormation,[mbOK],0);
InitPos:=RichEdit1.SelStart+RichEdit1.SelLength;
end;
{启动替换}
procedure TForm1.ToolButton13Click(Sender: TObject);
begin
ReplaceDialog1.Execute;
end;
{此过程用于实现替换功能}
procedure TForm1.ReplaceDialog1Replace(Sender: TObject);
var
i,n:integer;
s,find,replace:string;
begin
s:=RichEdit1.Text;
find:=ReplaceDialog1.FindText;
n:=Length(find);
Replace:=ReplaceDialog1.ReplaceText;
i:=Pos(find,s);
RichEdit1.SelStart:=i-1;
RichEdit1.SelLength:=n;
RichEdit1.SelText:=Replace;
if frReplaceAll in ReplaceDialog1.Options
then
repeat
s:=RichEdit1.Text;
i:=pos(find,s);
if i<>0
then
RichEdit1.Text:=Copy(s,1,i-1)+Copy(s,i+n,length(s)-(i+n)+1);
{将文件分成三段:1--(i-1),i--(i+n),(i+n+1)--Length(s)}
until i=0;
end;
{此过程实现文字颜色的改变}
procedure TForm1.ToolButton14Click(Sender: TObject);
begin
with ColorDialog1 do
begin
Color:=RichEdit1.SelAttributes.Color;
if Execute
then
RichEdit1.SelAttributes.Color:=Color;
end;
end;
{此过程用于实现打印功能}
procedure TForm1.ToolButton15Click(Sender: TObject);
begin
with PrintDialog1 do
begin
Options:=[poPrintToFile];
PrintToFile:=true;
if execute
then
begin
if PrintToFile
then
begin
SaveDialog1.Title:='打印到文件: ';
if SaveDialog1.Execute
then RichEdit1.Lines.SaveToFile(SaveDialog1.FileName+
'.prt');
end
else RichEdit1.PaintTo(Handle,10,10);
end;
end;
end;
{此过程用于实现“新建”,注意:这将会清空所有未保存的内容}
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
RichEdit1.Clear;
end;
{退出}
procedure TForm1.N6Click(Sender: TObject);
begin
Form1.Close;
end;
{弹出作者姓名}
procedure TForm1.About1Click(Sender: TObject);
begin
ShowMessage('(C)Choabs,2014') ;
end;
{打开帮助窗口}
procedure TForm1.Contents1Click(Sender: TObject);
begin
Form2.Show;
end;
{打开日历窗口}
procedure TForm1.C1Click(Sender: TObject);
begin
Form3.Show;
end;
{打开法律信息窗口}
procedure TForm1.N30Click(Sender: TObject);
begin
form5.Show;
end;
{打开感谢窗口}
procedure TForm1.N31Click(Sender: TObject);
begin
form6.show;
end;
end.