我在书上看到一个制作记事本的范例,就试着动手做了做。后来遇到不少问题。
请大家指导一下。
首先他自定义了三个过程
第一个是设置文件名:
procedure setfilename(const filename:string);
begin
ffilename:=filename;
mainform.Caption:=
format('%s-%s',[extractfilename(filename),application.Title]);
end;
第二个是提醒存盘的消息框:
procedure checkfilesave;
var saveresp:integer;
begin
if not mainform.RichEdit1.Modified then exit;
saveresp:=messagedlg(format('将修改的文件存入文件%s?',
[ffilename]),mtconfirmation,mbyesnocancel,0);
case saveresp of
idyes:mainform.RichEdit1.Lines.SaveToFile(ffilename);
idno:;
idcancel:abort;
end;
end;
第三个是完成文件的初始化工作:
procedure performfileopen(const afilename:string);
begin
mainform.RichEdit1.Lines.LoadFromFile(afilename);
setfilename(afilename);
mainform.RichEdit1.SetFocus;
end;
然后就是每个菜单中选项的click事件,我已经能实现打开,新建,复制,粘贴,删除等功能,但是保存和另存为功能没有实现。
下面是另存为的代码。
procedure Tmainform.filesaveasClick(Sender: TObject);
begin
if savedialog1.Execute then
begin
if FileExists(savedialog1.FileName) then
if messagedlg(format('是否覆盖文件%s?',[savedialog1.FileName]),
mtconfirmation,mbyesnocancel,0)<>idyes then exit;
mainform.RichEdit1.Lines.SaveToFile(savedialog1.FileName);
setfilename(savedialog1.FileName);
mainform.RichEdit1.Modified:=false;
end;
end;
请大家帮我看看哪里问题。
请大家指导一下。
首先他自定义了三个过程
第一个是设置文件名:
procedure setfilename(const filename:string);
begin
ffilename:=filename;
mainform.Caption:=
format('%s-%s',[extractfilename(filename),application.Title]);
end;
第二个是提醒存盘的消息框:
procedure checkfilesave;
var saveresp:integer;
begin
if not mainform.RichEdit1.Modified then exit;
saveresp:=messagedlg(format('将修改的文件存入文件%s?',
[ffilename]),mtconfirmation,mbyesnocancel,0);
case saveresp of
idyes:mainform.RichEdit1.Lines.SaveToFile(ffilename);
idno:;
idcancel:abort;
end;
end;
第三个是完成文件的初始化工作:
procedure performfileopen(const afilename:string);
begin
mainform.RichEdit1.Lines.LoadFromFile(afilename);
setfilename(afilename);
mainform.RichEdit1.SetFocus;
end;
然后就是每个菜单中选项的click事件,我已经能实现打开,新建,复制,粘贴,删除等功能,但是保存和另存为功能没有实现。
下面是另存为的代码。
procedure Tmainform.filesaveasClick(Sender: TObject);
begin
if savedialog1.Execute then
begin
if FileExists(savedialog1.FileName) then
if messagedlg(format('是否覆盖文件%s?',[savedialog1.FileName]),
mtconfirmation,mbyesnocancel,0)<>idyes then exit;
mainform.RichEdit1.Lines.SaveToFile(savedialog1.FileName);
setfilename(savedialog1.FileName);
mainform.RichEdit1.Modified:=false;
end;
end;
请大家帮我看看哪里问题。
解决方案 »
- 服务端如何接收消息
- webbrower 的向前向后问题
- 5月3号结婚,今天下午开始休假了,散分
- 为什么我读取十六进制数0DE3,0DE3是一个数据的存处地址,返回一个负值(-7411),为什么会是这样,vc++语言有一个叫&H0DE3&这个就可以返回正数
- 如何做一个短信网关的接口?(在线等待)
- NetFileEnum()及WNetGetUser()的用法(在Delphi中)
- listview是不是有个LOADFROMFILE的方法啊,可是我就是找不到,麻烦谁告诉我一下好吗?
- 点击dbnavigator使dbgrid数据显示到dbedit
- 如何动态指定存储过程名后,参数也可自己跟上去?
- 可恶的udp数据流错误,急,急,急!!!!!
- 什么样的程序能够在服务器的任务栏或内存中定时扫描数据库的变化?
- 如何拷贝字符串数组到string
setfilename(savedialog1.FileName);