Hallo!
Ich bin gerade dabei, alle unsere Projekte auf Delphi2009 umzustellen. Dabei stoße ich derzeit sehr oft auf Compiler-Warnings die besagen, dass mit evtl. Datenverlust aufgrund einer String-Umwandlung zu rechnen ist. Das ist auch logisch, da viel mit Records nach folgendem Stil gearbeitet wird:
Delphi-Quellcode:
TMyRecord = record
LastName: string[32];
FirstName: string[32];
end;
Die expliziten Längenangaben in Klammern werden benötigt, da die Daten teilweise auch weggeschrieben werden. Wird der Record nun nach folgendem Schema gefüllt, ...
Delphi-Quellcode:
MyRecord: TMyRecord;
LastName, FirstName: string;
begin
LastName := 'Hoffmann';
FirstName := 'Marc';
MyRecord.LastName := LastName;
MyRecord.FirstName := FirstName;
end;
...kommen die Warnings, da ja versucht wird, ein
UNICODE-String einem ShortString (= 32 Länge) zuzuweisen. Gibt es in Delphi2009 nun eine Möglichkeit AUßER einem Typcase alá "MyRecord.LastName := AnsiString(LastName)" dieses Problem eleganter zu lösen oder generell einen anderen Ansatz...??
Vielen Dank & Gruß,
kaju