简易文本编辑器
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Panel1: TPanel;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
f: textfile; //文件类型
wfilename: string; //文件名存储
flag: boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); //新建按钮
begin
assignfile(f,'C:\newfile.txt'); //将一个外部文件的文件名与一个File类型的变量关联,并对变量进行初始化
form1.Caption := 'newfile.txt'; //设置Form窗体标题
wfilename := 'newfile.txt'; //存储文件名
rewrite(f);
//对于一个已存在的文件,此操作将使文件被覆盖。
//对于一个不存在的文件,将创建并打开文件。
//对于一个已打开的文件,则关闭文件,并重新创建一个新的文件(覆盖原有的)。文件指针也被设置到空文件的开头处
memo1.Enabled := true; //备注框可以操作
button1.Enabled := false; //新建按钮不可操作
button2.Enabled := false; //读文件按钮不可操作
button3.Enabled := false; //写文件按钮不可操作
button4.Enabled := true; //保存按钮可操作
button5.Enabled := true; //另存为按钮可操作
button6.Enabled := true; //关闭按钮可操作
button7.Enabled := true; //退出按钮可操作
end;
procedure TForm1.Button2Click(Sender: TObject); //读打开按钮
var
line: string;
begin
if opendialog1.Execute then //打开一个外部存在的文件
begin
assignfile(f,opendialog1.FileName);
reset(f);
//对于文本文件,Reset过程将以只读方式打开文件。
//对于类型文件和无类型文件,Reset过程将以可读写方式打开文件。
memo1.Enabled := false; //备注框不可编辑
while not eof(f) do //用于判断是否到了文件的结尾
begin
readln(f,line); //用于从文件中读取一行文本
memo1.Lines.Add(line); //添加到备注框
end;
button1.Enabled := false;
button2.Enabled := false;
button3.Enabled := false;
button4.Enabled := false;
button5.Enabled := false;
button6.Enabled := true;
button7.Enabled := true;
closefile(f);
end; //用来关闭文件,同时将文件记录盘上的文件与相关文件变量断开联系。
end;
procedure TForm1.Button3Click(Sender: TObject); //写打开按钮
var
line: string;
begin
if opendialog1.Execute then
begin
wfilename := opendialog1.FileName; //保存文件名
assignfile(f,wfilename);
reset(f);
memo1.Enabled := true;
while not eof(f) do
begin
readln(f,line); //逐行读取
memo1.Lines.Add(line); //逐行添加
end;
button1.Enabled := false;
button2.Enabled := false;
button3.Enabled := false;
button4.Enabled := true;
button5.Enabled := true;
button6.Enabled := true;
button7.Enabled := true;
closefile(f);
end;
end;
procedure TForm1.Button4Click(Sender: TObject); //保存
var
i,lastline: integer;
begin
lastline := memo1.Lines.Add('')-1; //获取备注框的总行数
assignfile(f,wfilename); //关联文件
rewrite(f); //覆盖写入
for i := 0 to lastline do //一行行保存
begin
writeln(f,memo1.Lines[i]); //将备注框的内容一行行写入文件
end;
closefile(f);
end;
procedure TForm1.Button5Click(Sender: TObject); //另存为
var
i,lastline: integer;
writefile: textfile;
begin
if savedialog1.Execute then //是否保存文件
begin
wfilename := savedialog1.FileName; //另存为的名字
assignfile(writefile,savedialog1.FileName); //关联文件
rewrite(writefile); //若无此文件则创建
form1.Caption := wfilename; //窗口标题设置
lastline := memo1.Lines.Add('')-1; //总行数
for i := 0 to lastline do
begin
writeln(writefile,memo1.Lines[i]); //写入文本
end;
closefile(writefile); //关闭文件
end;
end;
procedure TForm1.Button6Click(Sender: TObject); //关闭
var
t: integer;
begin
if not flag then
t := messagedlg('是否保存文件',mtconfirmation,mbyesnocancel,0);
if t <> 2 then
begin
if t = 6 then //如果保存
button4.Click;
memo1.Clear;
form1.Caption := '';
memo1.Enabled := false;
button1.Enabled := true;
button2.Enabled := true;
button3.Enabled := true;
button4.Enabled := false;
button5.Enabled := false;
button6.Enabled := false;
button7.Enabled := true;
end;
flag := false;
end;
procedure TForm1.Button7Click(Sender: TObject); //退出
begin
close;
end;
end.

Panel Align Albottom 控制面板始终位于窗体下部
Memo1 Align Alclient 备注框撑满整个窗体

浙公网安备 33010602011771号