2004-10-25 09:59 dragonpc
看看我的Expert

说明文档
[url]http://dragonpc.swiki.net/.uploads/Readme.chs.24.mht[/url]

我在yahoo开的组
[url]http://groups.yahoo.com/group/dgexperts/[/url]

CodeRush for Delphi可能停止开发了,则不是我说的,是Erik Berry(GExperts作者)在Borland新闻组说得(我在opentools新闻组问问题的时候他回答的时间说得 Thread:2004-07-05),Castalia 不稳定且功能较弱,所以我就写了这个Experts,板猪看看有没有参考价值吧。

我很久不用Delphi了(我的工作现在都不需要进行具体的开发),只是偶尔玩一玩,而且也没有很多时间去改进这个东西,不要笑话我

2004-10-26 10:27 dragonpc
更正
asm .. end
配对

2004-10-26 13:44 agamem
老兄,你搞出来的界面惨不忍睹呀,整个给乱套了

2004-10-26 13:48 dragonpc
[quote] [u][b]agamem[/b]  在 2004-10-26 01:44 PM 发表:[/u]

老兄,你搞出来的界面惨不忍睹呀,整个给乱套了 [/quote]

发个界面给我看看

[email]dragonpc@21cn.com[/email]

2004-10-26 15:36 internetzs
太多的AV错误,有时在打开或关闭unit时,有时在退出delphi.无法正常使用。

我比较喜欢显示行号的功能,可惜单击行号的panel也会报AV错误。

2004-10-26 16:11 dragonpc
这就是我难过的地方,在我自己的环境里面应用没有什么问题,只是偶尔会Delphi死锁,几率也很小,我不知道你那里是什么问题,可能的话,你可以看看源码,找找问题出在哪里,

[quote] [u][b]internetzs[/b]  在 2004-10-26 03:36 PM 发表:[/u]

太多的AV错误,有时在打开或关闭unit时,有时在退出delphi.无法正常使用。

我比较喜欢显示行号的功能,可惜单击行号的panel也会报AV错误。 [/quote]

2004-10-26 16:30 dragonpc
改正了点击 Gutter 的 AV 错误

谢谢楼上的报告

2004-10-26 18:48 zjy
代码我看了一下,写得很有大家风范,就是还不太稳定:)

不过没关系,IDE 里头写程序就是这样,特别是这种 Custom Painting 的东西,要做到稳定需要大量的测试和改错。另外还有 IDE 自身的 Bug 也不少,跟其它专家的兼容性也是大问题。

不知道 dragonpc 老兄是否有意将这个专家加入到 CnPack 计划中?最近管理员有些忙,如果有兴趣,可以聊聊:
MSN: zjy at cnvcl dot org
QQ: 991144
Mail: master at cnvcl dot org

2004-10-26 19:05 zjy
另外,建议老兄在开发期间可以发布带日志记录的调试版,这样如果有AV可以把日志发给你分析。CodeSite不知是否好分发,CnWizards 用的是功能类似但简单的 overseer。

2004-10-26 22:39 zjy
这里还有些在专家中避免异常的小技巧,欢迎交流:

1、如果要拦截 IDE 的事件或通知,尽量不要直接在事件中写自己的代码,可以先置个标志,再把专家代码放到 ApplicationEvents.OnIdle 中去执行。
2、如果是在 IDE 中加挂自己的东西并要调用原来的东西,尽量在调用原来的代码前将现场恢复到原始状态,调用完成后再切回来。比如要在 IDE 的 PopupMenu 里加自己的 MenuItem,可以先挂接 OnPopup 事件,并在执行时先把自己的 Item 全部删掉,调用完原来的 OnPopup 后再增加自己的。
3、IDE 在加载 DLL 型 Wizard 时,是按照先加载先释放的顺序进行的,如果多个 Wizard 都挂接了同一个事件,由于后挂接的后释放,后释放的如果把事件恢复成先挂接的,就会导致异常。同样,在 IDE 内部可能还会类似的情况,挂接时需要特别小心冲突问题。

2004-10-27 09:38 agamem
看看图吧
我的环境用红线标了一下

2004-10-27 11:43 internetzs
我的IDE: 
1. 菜单去掉了Database/Window两项,整个Toolbar省了一行空间
2. 去掉了EditWindow的标题栏,又可以省了一行空间,加上方块以补不能移动的缺点
3. 参考楼主的代码,加了行号,单击行号可以定义bookmark
4. 加了浮动的工具栏,上面可以自由切换Floating ToolWindow
5. 改进Code completion,不用按Ctrl+Space会自动弹出自动完成列表选择
6. 改进Project manager

2004-10-27 11:51 dragonpc
这是字体方面的问题,我没有考虑周全,我的环境是 9 号字体,我过一会就改改。


to yygw,
我在大富翁知道了cnvcl这个项目,很早就知道了,现在我写的这点玩意也是希望能够给这个项目提供一点素材,我时间真的不多,出差太多了,一年有大半年在飞,我真的希望有人能够继续下去,一旦语法分析模块能够成熟,以后可以添加诸如流程图FlowChart、重构Refactoring等等复杂的功能。

2004-10-27 21:03 Passion
看看这几位朋友的作品,很不错,比较有创意。尤其是以行号和begin end配对功能比较实用。如果你们同意的话,我们考虑一下移植到CnPack的专家包中?

2004-10-28 10:56 agamem
改了字体!好了!

2004-10-28 16:26 dragonpc
[quote] [u][b]Passion[/b]  在 2004-10-27 09:03 PM 发表:[/u]

看看这几位朋友的作品,很不错,比较有创意。尤其是以行号和begin end配对功能比较实用。如果你们同意的话,我们考虑一下移植到CnPack的专家包中? [/quote]


这是我的荣幸,不过我可能没有精力,我希望版主能够找到人做这件事情,顺带 review 一遍代码,把满天的 bug 改改,尤其是和其它Expert以及各个Delphi版本的兼容性(由于都对EditControl加了回调,冲突太多了)

2004-10-29 11:15 dragonpc
修正了保存设置时没有显示Gutter的bug
改进了编辑Delphi Edit Code Template的实现

2004-11-4 09:08 dragonpc
增加了
repeat .. until
if .. then
while .. do
for .. do
on .. do
with .. do

配对,改进了DrawLine的画法为虚线,配置在DGExperts.Inc文件里面硬编码了,改为在Options窗口动态配置,

另外,字体的问题比较麻烦,很难解决,我已经在Borland OpentoolsApi新闻组问了问题,看看有没有高手给个解决办法。
[url]http://216.239.57.99/groups?hl=zh-CN&lr=&newwindow=1&threadm=41830ddd%40newsgroups.borland.com&prev=/groups%3Fhl%3Dzh-CN%26lr%3D%26newwindow%3D1%26group%3Dborland.public.delphi.opentoolsapi[/url]

2004-11-4 09:09 dragonpc
最新版本在这里

2004-11-4 15:19 agamem
兄台!加个和CodeRush样不匹配的提示就更好了,不知道有没有这个功能!!

2004-11-8 16:43 dragonpc
[quote] [u][b]agamem[/b]  在 2004-11-4 03:19 PM 发表:[/u]

兄台!加个和CodeRush样不匹配的提示就更好了,不知道有没有这个功能!! [/quote]

什么意思,你解释一下吧

2004-11-8 17:54 lann
[quote] [u][b]Passion[/b]  在 2004-10-27 09:03 PM 发表:[/u]

看看这几位朋友的作品,很不错,比较有创意。尤其是以行号和begin end配对功能比较实用。如果你们同意的话,我们考虑一下移植到CnPack的专家包中? [/quote]

能否提供BCB6的版本?小弟满想试用看看的
也期待可以早点整合到CnPack中

2004-12-26 19:10 zjy
代码编辑器行高问题已解决

今天花了一下午的时间来跟踪 IDE 的汇编代码,总算搞清楚了 IDE 自己计算行高和字宽的方法。IDE 会根据不同的字体风格组合,查找最大的字体高宽,通常在“斜体”时的高度是最大的。

我在 CnWizards 中编写了一个 TCnEditControlWrapper 来封装对该控件的访问,源代码在 CnWizIdeUtils 单元中:
[url]http://www.cnvcl.org:8008/cnpack/getfile/cnpack/Source/Wizard/Utils/CnWizIdeUtils.pas?v=1.22[/url]

2004-12-27 17:26 dragonpc
[quote] [u][b]yygw[/b]  在 2004-12-26 19:10 发表:[/u]

今天花了一下午的时间来跟踪 IDE 的汇编代码,总算搞清楚了 IDE 自己计算行高和字宽的方法。IDE 会根据不同的字体风格组合,查找最大的字体高宽,通常在“斜体”时的高度是最大的。[/quote]

这么说来,Borland的设计很和情理,只怪俺当初没有想到呀

不过这都给版主你给搞定了,不得不佩服呀

2005-8-4 14:31 agamem
翻了好久才找到这个帖子
不知道yygw和dragonpc有没有谈好,什么时候加这个功能啊??

2005-8-4 15:12 zjy
其实这个功能早就计划增加了,不过 dragonpc 提供的代码在稳定性和效率上还不够完善。
最新的构建版本,括号高亮已经增加了,并且在性能上有很大的提高。与 Castalia 相比,使用了更底层的技术,性能更高。结构高亮也正在改进中。

2005-8-5 13:28 agamem
谢谢了!真的好期待呀!

2005-8-5 17:50 firstrose
[quote]Originally posted by [i]yygw[/i] at 2005-8-4 15:12:
其实这个功能早就计划增加了,不过 dragonpc 提供的代码在稳定性和效率上还不够完善。
最新的构建版本,括号高亮已经增加了,并且在性能上有很大的提高。与 Castalia 相比,使用了更底层的技术,性能更高。结构 ... [/quote]

有没有可能做语法折叠?

2010-4-29 00:07 Diroc
[quote]原帖由 [i]internetzs[/i] 于 2004-10-27 11:43 发表
我的IDE: 
1. 菜单去掉了Database/Window两项,整个Toolbar省了一行空间
2. 去掉了EditWindow的标题栏,又可以省了一行空间,加上方块以补不能移动的缺点
3. 参考楼主的代码,加了行号,单击行号可以定义bookmark
4. 加了浮动 ... [/quote]



弱弱问下,这个菜单怎么自定义的?我的IDE怎么只能自定义工具栏……

2010-4-29 12:43 Passion
他是用专家来调整的吧,不是界面上直接操作。

2010-4-29 19:36 Diroc
我试了下,好像只有在加载的时候对IDE的MainMenu设置visible才有效~~~而且,貌似Database比我的专家还晚加载,不知道怎么可以去掉它~~:Q
LiuXiao前辈指点下啊~~:)

2010-5-4 22:12 Diroc
已经成功去掉MainMenu上的菜单了,不过就是不明白为什么MainMenu的菜单要移除了再加进去设置的visible才会有效……:Q

页: [1]
查看完整版本: 看看我的Expert


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.