你现在的位置:剑舞天痕>俺没分类>增加对 BDS 2006 支持不容易
增加对 BDS 2006 支持不容易 [83,2006]
BDS 2006 看似全面兼容旧版本的 OTA,可毕竟变了不少东西,CnWizards 的许多旧功能在 BDS 2006 上就显得不太对头,其中又以 OTA 中的 Repository 接口和其 Creators 系列接口为甚。
BDS 2006 可同时支持多种语言,因此原来 CnWizards 中许多编译期确定语法标志的东西都失效了,都得改成运行期判断,也就是说许多{$ IFDEF DELPHI}等类似的东西都得改成 IsDelphiRuntime 的函数判断(这个函数还是自己凑合着写的。)一处一处替换改过去,检查,还颇费了不少事。
关于 Repository 专家,出现了第一处不兼容的情况:IOTAUnitWizard 原先必须实现 IOTAFormWizad 才能出现在 New 对话框中,但 BDS 2006 就改成了 IOTAProjectWizard,即使你的专家只生成普通单元也一样。
第二处问题是由于 IDE 的动态语言的支持而带来的,BDS 2006 的 IDE 支持 Delphi.Net, Delphi.Win32,C++,C#,你的专家能产生啥工程?这里没有默认的说法,如果你的专家创建工程的时候没有实现 IOTAProjectCreator80 而没有返回一个合适的 Personality,那么对不起,不理会您。
第三个无法解决的问题也不知道是不是 BDS 2006 的 Bug,一个纯 Unit 的生成专家,生成过程中 IDE 传进来的 Module 名等总是空,没法得到名字就没法生成合法的单元,这问题研究了一个多礼拜也没效果,跟踪 IDE 也跟不出什么特例,后来还是周兄想出个先提示保存的主意,算是绕过去了。
到现在还不敢说全面支持 BDS 2006,只能等待在测试中发现问题了。
评论(共 条) 我要评论
{CommentContent}
Posted by {CommentAuthor} at {CommentTime} | {CommentUrl}