An einigen Codestellen habe ich noch keine
Unicode-Unterstützung und daher entsprechende Warnungen. Bei der Umstellung auf Delphi XE stellt sich mir nun folgende Situation und Frage:
Ich habe diverse Aufrufe von Format('Hallo %s', [s]), bei denen ich ein AnsiString als Rückgabewert brauche. Also binde ich die
Unit AnsiStrings ein.
Die "sichere" Variante, nun die richtige Version von Format aufzurufen wäre, 'Hallo %s' als Konstante vom Typ AnsiString zu definieren und zu verwenden.
Was passiert nun, wenn ich Format(AnsiString('Hallo %s'), [s]) verwende? Klar, dadruch wird die gewünschte Version von Format aufgerufen, nur: wird bereits beim Kompilieren hier eine AnsiString-Konstante verwendet, oder übersetzt der Compiler eine WideString-Version, die er zur Laufzeit in den AnsiString castet?
Da ich in der gerade in Arbeit befindlichen
Unit etliche Hundert solcher Stellen habe, und diese - in Maßen - zeitkritisch ist, wäre diese Information hilfreich um festzulegen, ob sich der Mehraufwand, explizit Konstanten zu definieren, lohnt.