Board logo

Subject: 如何控制代码编辑器自动存盘 [Print This Page]

Author: chenxinyu    Time: 2007-10-5 17:51     Subject: 如何控制代码编辑器自动存盘

在代码编辑器中按热键,先保存单元文件,然后再进行一系列操作来改写代码编辑器中的内容,存盘操作我用的是下面的语句:
(BorlandIDEServices as IOTAActionServices).SaveFile(Context.EditBuffer.FileName);
但是系统要弹出一个确认对话框,如何不弹出确认对话框而直接存盘?
或者,如何获得当前操作的代码编辑器中的所有文本内容,我是先存文件,然后读取到一个Memo中进行处理,然后再写回去,感觉有点钝,最好的方法是什么呢?
获得代码编辑器中某一行的信息,用的是EditBuffer.EditPosition.Move先移动到某一行的某一列,然后用EditBuffer.EditPosition.Read(i)读取长度为I的字符串,感觉这样操作简直太死板了,感觉整个文本应该是一个Strings对象才符合Delphi 的一贯风格,可是我找来找去都找不到这方面的属性,郁闷,请高人给我指点一条明路,谢谢!
Author: Passion    Time: 2007-10-5 19:05

第一个问题,请参考CnWizards中的代码,cnwizards\Source\SrcEditorEnhance\CnSrcEditorMisc.pas中的CnSrcEditorMisc.AutoSaveOnTimer函数。

获得当前操作的代码编辑器中的所有文本内容,请参考
function CnOtaGetCurrentEditorSource: string;
{* 取得当前编辑器源代码}

以及function CnOtaGetLineText

有关获得CnWizards源码的方法请参考www.cnpack.org的CVS使用说明。
不明白的地方再讨论。
Author: Passion    Time: 2007-10-5 19:12

忘记说了,上述后两个函数在cnwizards\Source\Utils\CnWizUtils.pas中。
Author: chenxinyu    Time: 2007-10-5 20:17

我查看了你们的代码,又试验了一下,最后用下面这句解决了第一个问题。
(BorlandIDEServices as IOTAModuleServices).SaveAll;
Author: chenxinyu    Time: 2007-10-5 21:48

谢谢管理员,看了CnWizards的源代码以后,已经知道该怎么来处理了,非常感谢!




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0