我是Delphi的新手,我正在将一个非常古老的Delphi项目迁移到Embarcadero RAD Studio 2010.我发现使用字符串时遇到了问题。这是代码:
ProgramaResultadosType = record
Version: string;
TituloPrincipal : string;
BloquesResultados : VectorBloquesResultadosType;
end;
FileOfProgramaResultadosType = file of ProgramaResultadosType;
错误......
“E2155类型'%s'需要最终确定 - 文件类型不允许”
我知道当你没有指定字符串大小时,对于许多delphi开发人员来说,这是一个众所周知的错误。
基本上我想停用像旧版本的RAD Studio这样的巨大字符串指令,但我在2010版本中找不到。
答案 0 :(得分:10)
请改用:
ProgramaResultadosType = record
Version: shortstring;
TituloPrincipal : shortstring;
BloquesResultados : VectorBloquesResultadosType;
end;
但请注意:
string
类型进行不可见的转换:在阅读string
内容之后,最好使用另一个显式shortstring
变量; string
是一个Unicode字符串:因此当您从{shortstring
(这是一个Ansi字符串)写入时,您可能会丢失一些数据{1}}; UnicodeString
。所以你可能需要:
将现有应用程序转换为较新的Unicode版本的Delphi时值得一读: