Seit Delphi 2009 (
Unicode) kann man nicht mehr über
FillChar(Result[1], ..., PadChar);
ein Char mehrfach reinschreiben, da FillChar mit Bytes und nicht mit Words (oder mehr) arbeitet.
Intern würde es schon gehn, aber es nimmt nur ein Byte vom Parameter entgegen.
Und beim
Unicode würden überall auch nur 50% der Bytes koppiert/geschrieben.
So
function PadLeft(const S: AnsiString; ResultLength: Integer; PadChar: AnsiChar = '0'): AnsiString;
würde es aber weiterhin funktionieren.