如何知道Memo中的内容是否已更改?(50分)

  • 主题发起人 主题发起人 laocir
  • 开始时间 开始时间
L

laocir

Unregistered / Unconfirmed
GUEST, unregistred user!
1、如何得到Memo中的字符总数?
2、如何知道Memo中的内容是否已更改?
 
1. 过程如下
procedure TForm1.Button1Click(Sender: TObject);
var
i, CountWords:integer;
begin
CountWords:=0;
for i:=0 to Memo1.Lines.Count-1 do
CountWords:=CountWords+length(Memo1.Lines);
ShowMessage(inttostr(CountWords));
end;

2.Memo的OnChange事件
如:
procedure TForm1.Memo1Change(Sender: TObject);
begin
ShowMessage('Changed');
end;
 
谢谢!
我想在程序退出时判断MEMO中的内容是否更改,以便于提醒保存文本,如果
用OnChange事件的话,好象有些麻烦(每次改动都会触发)。有没有其他的
方法?
 
那就自己加一个标志变量, 如: MemoChanged:boolean, 然后在OnChang中设其为真,
再在主程序的OnClose事件中对它进行检查, 如为真就提醒保存文本
 
定义一个全局变量s:string,在memo的onenter事件中s:=memo1.lines.text;
在保存前对比s和memo1.lines1.text就知道是否被改过了。
 
不是在onenter事件中赋值,应该是给memo1赋值的同时给s赋值
 
检查memo1的Modified属性。
 
1. Length(memo1.Lines.text); //字节数
2. if Memo.Modified then
//修改过
 
是的, 用Modified属性也可以
 
1.上面已经有了.
2.新建时
    Memo1.Modified := False;
保存时:
    Memo1.Modified := False;
这样退出时:
    if Memo1.Modified then
begin
//提示是否保存
end;
 
多人接受答案了。
 
多谢各位,分已分了。
 
后退
顶部