I'm new in Delphi and I was migrating a very old Delphi project to Embarcadero RAD Studio 2010. I found a problem using strings. Here is the code:
ProgramaResultadosType = record
Version: string;
TituloPrincipal : string;
BloquesResultados : VectorBloquesResultadosType;
end;
FileOfProgramaResultadosType = file of ProgramaResultadosType;
And the error...
"E2155 Type '%s' needs finalization - not allowed in file type"
I know it's a well-known error for many delphi developers when you don't specify the string size.
Basically I would like to deactivate Huge strings directive like older versions of RAD Studio, but I can't find out in the 2010 version.
Just use instead:
ProgramaResultadosType = record
Version: shortstring;
TituloPrincipal : shortstring;
BloquesResultados : VectorBloquesResultadosType;
end;
But be aware that:
string
type: you should better use another explicit string
variable just after having read the shortstring
content;string
is an Unicode string: so you may lose some data when writing into a shortstring
(which is an Ansi string) from an UnicodeString
;ProgramaResultadosType = packed record
could be necessary if your application is very very old (default alignment changed around Delphi 4, AFAIR).So you may have to:
Worth reading when converting an existing application to newer Unicode version of Delphi:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With