D2009试用了一下,发现很大问题,和旧版本不兼容,最大问题是Char类型,String类型和旧版本不兼容,这不是导致了现有的Delphi粉丝都用不上了。估计又会因此而丢失一批粉丝。

解决方案 »

  1.   

    是啊 支持楼主
    我最喜欢String了
      

  2.   

    char 不是大问题。转换还是很方便的。
    最担心的是,我发现了一些很低级的BUG。
      

  3.   

    我宁可用D2009,我现在为了UNICODE不得不做很多的代码工作。
      

  4.   

    我的代码早就为Delphi2009准备了.很多地方都是用AnsiChar.PAnsiChar等.
    我的项目移植到Delphi2009只花了10几分钟的时间.呵呵.
      

  5.   

    delphi高版本不兼容低版本是个及其愚蠢的问题,每升级一次就气泡一批用户。
    这两天想把delphi2007下的一个基于UDP的聊天程序,移值到delphi2009下,弄了两天了没成功!
    没成功的原因竟是TIDUDPserver的OnUDPread事件里一个参数类型的改变:
    procedure TFMain.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread; AData: TBytes; ABinding: TIdSocketHandle);大家仔细看,AData: TBytes这个参数在delphi2007是AData: TStream型的,这么小的地方难道非该不可吗?!!想不通,即使改了,起码应该兼容前面版本的参数一段时间啊。气死了,导致原来提取收到的数据的命令AData.ReadBuffer(Comm,AData.Size);出现3个编译错误提示。到现在也没找出解决和变通方法,一直提取不出来AData代表的接收信息了(AData里接收的是一个record记录结构型的字节流)。再搞,也不想用delphi了!!!太麻烦,升级一次几乎要重新学习一次知识,学习成本、升级成本太高!
      

  6.   

    部分編程接口改變,導致程序的不兼容。
    是不可避免的。隨著版本不斷升級,功能不斷增加,兼容舊程序的包袱會越來越大,發展速度就越來越慢。很多控件,在同一pas文件中,用很多編譯開關,兼容 D3-D12 的做法,只能越來越難維護。
    希望提供工具專門生成去除這些編譯開關後的干淨版本。2009 是一個重大改變,兼容90%舊代碼即是兼容性不錯了。不要指望99%以上的兼容。
    雖然不能兼容,但如果升級的同時,能給出一個代碼不兼容列表及替代方案,那就理想了。
      

  7.   

    用TStream就一定好么,用TBytes怎么了,这个是骨灰级的类型了,效率应该比TStream根理想,如果你需要TStream,可以自己转换到TStream里面去。
    别告诉我你连TStream是什么都不清楚。
      

  8.   

    大部分情况下,STRING = WIDECHAR OR ANSISTRING,都无所谓,仅仅是基于特定存储、转换才考虑他们的不同。
    我前一阵子写游戏修改器,在读写内存的地方使用PANSICHAR,文字显示的地方使用WIDESTRING,这些根硬逻辑打交道的地方,本身就应该考虑用硬指令的。当windows从16位转换到32位,有多少人提出质疑,考发工具从16位转移到32位时候呢?当 INTEGER从16位长度变为32位长度,你读写文件是不是郁闷了?当然,如果你读写文件采用了BYTE、WORD这种硬指令,你就不需要为升级感到郁闷了。
      

  9.   

    楼上不要乱说 delphi 历来兼容性都是非常好的
    这次也是因为 unicode 把 string 变为双字节的, 以前用的 string, Pchar() 转换也都能用, 大部分代码做小小改动基本上都是可以兼容的delphi 这次更新也是非常重要的, fans 因该都期待了很久才对, 怎么会跑了, 郁闷
      

  10.   


    这不是DELPHI升级的问题,而是INDY升级的问题,你可以换回去啊
      

  11.   


    如果你连这个问题都解决不了,那劝你别学写程序了,自己不会把TBytes写到TMemoryStream里面再用啊,这么小一个问题2天都解决不了,唉,啥也不说了
      

  12.   

    改改字符串,基本就兼容过去的
    只是多了ANSI和Unicode的隐含转换而已
      

  13.   

    Delphi 2009 搞什么鬼呀,以前D2007的控件安装不上,D7的就更不用说了!!!大家是怎样解决的?
      

  14.   

    Delphi2007提供了INDY9和INDY10两个版本给你选择,为的就是让你顺利过渡,Delphi2009只提供了INDY10,而且由TStream转到TBytes那还不容易?如果你连这个转行花了两天还搞定,我劝你还是转行算了,你真不适合搞编程!
      

  15.   

    首先,如果你一直跟踪Delphi相关的blogs,那么Unicode带来的变化应该你早就烂熟于心,不至于说出“不兼容”这个词来,Unicode根本不可能兼容ANSI。至于Indy9和10已经共存了好几个IDE版本了,也该是完全切换到10的时候了。可惜呀,一直用D7是不可能跟上形势的。
      

  16.   

    关于ANSI到Unicode需要做的改动,请参见http://dn.codegear.com/article/38693关于第三方控件的列表,请参见http://dn.codegear.com/article/38459
      

  17.   

    我在这里看到的谈到的都是D2009的兼容性,大家有没有知道VB升级到.net时,的结果,如何,全部得重写。VC呢,
    结果一样,改动非常大。太多的兼容性就会失去更多的先进性的。
      

  18.   

    delphi2009  IntraWeb 的模板功能用不了,Phonetics Customer Profile  这个例子用不了,出来是乱码。请问各位高人有解答吗?