像 Ultra edit 的Save All 如何实现? ( 积分: 50 )

  • 主题发起人 主题发起人 sypoh
  • 开始时间 开始时间
S

sypoh

Unregistered / Unconfirmed
GUEST, unregistred user!
像 Ultra edit 的Save All 如何实现?
 
像 Ultra edit 的Save All 如何实现?
 
KAO
做个循环不就得了呀!
 
改了的做标记,for each 有标记的 save;
 
hpretty 肯定也做不出来, 只会KAO!
 
问题是出在MDI 上
若现有text1.txt, text2.txt 和text3.txt.
请问要如何用循环把以上三个文件存档?
 
好像主窗体的Child属性是个数组可以有方法遍历的。
我也只知道这些。
 
每打开一个文件是一个Editor,包含方法如Open, Save

UltraEdit还有一个EditorMgr用于管理所有的Editor

SaveAll就是调用各个Editor.Save

大概应该如此
 
假设你的编辑器基于TMemo的,那么在动态创建新的文档编辑窗口时必然会有类似如下的语句:
var
NewEditor:TMemo;
...
NewEditor:=TMemo.Create(Self);
...
那么OK,现在为了统一管理程序中所有可能出现的Memo,你可以定义一个动态的TMemo数组,并在每次创建新的文档编辑窗口时将新建的Memo纳入这个TMemo 数组中:
var
NewEditor:TMemo;
AllEditor:array of TMemo;
c:integer;
...
NewEditor:=TMemo.Create(Self);
c:=Length(AllEditor);
SetLength(AllEditor,c+1);
AllEditor[c]:=NewEditor;
...
这样,由于AllEditor中维护了整个程序中所有编辑器的一个序列,所以你可以很容易地通这个数组访问到程序中任意一个曾经存在过的编辑器,当然也包括它们是否修改过的状态信息了。
 
建议看《Delphi高手突破》
 
后退
顶部