delphi7升迁delphi xe6注意事项
d7 --->dxe6需要修改
1.PChar替换成PAnsiChar
2.Length(P1) 修改成 Length(P1)*SizeOf(Char) 或者 ByteLength函数计算
3.Key in ['a'..'z','B','C']
这类代码最好替换成CharInSet(Key,['a'..'z','B','C']) 不然会当作AnsiChar处理。
4.代码中的所有WideString都考虑替换成String。
5.引用AnsiStrings单元
如果你有必要使用 AnsiLowerCase AnsiCompareStr之类的函数,一定要引用AnsiStrings单元。
如果你不引用该单元,即便编译不报错,你实际上是用的还是Unicode版本的函数,会有隐式的转化。
不信你打开参数自动完成,看看IDE提示给你的类型是什么?
天啊AnsiLowerCase参数竟然还是String,而不是AnsiString。看来Delphi2010太迫切的要抛弃Ansi字符串了,
以至于你不引用AnsiStrings单元,所有Ansixxxx函数实际上还是Unicode版本
6.AnsiCopy AnsiPos AnsiDelete
不要用AnsiCopy AnsiPos AnsiDelete,因为Copy Pos Delete三个函数已经有了For Ansi的重载。
7.把Char转化为小写用什么?
答案:试试看Character单元的新函数 ToUpper ToLower。以前我都是用System里面的UpCase函数,现在依然可用不过却找不到LowCase DownCase之类的函数,困扰我好久好久。索性全使用Character单元提供的新函数吧。
8.frxClass, frxDBSet; fastreport4-->fastreport5要替换上面的单元。
9.
DateSeparator
只需要把DecimalSeparator前加上FormatSettings变成 FormatSettings.DecimalSeparator;
如果提示没有定义ShortTimeFormat,DateSeparator,ThousandSeparator,CurrencyString等等;方法同上。