Hast Du denn eine Kerning-Korrektur für '01' oder nur für '10'. Bei der '1' ist links ein leerer Raum, und denn füllt man mit einem kleinen Teil des rechten Rands der '0'.
Ich würde eher sagen, das der Parameter für 'Alignment' auf taLeftAlignment steht bzw. der Wert von 'LeftPos' falsch ist.
Vor dem Aufruf von DrawNumberAt muss er den rechten Rand des rechten Bitmaps (bei dir die '0') beschreiben. Die Breite sollte korrekt errechnet sein...
Haaalt! Da ist ein kleiner Fehler.
Delphi-Quellcode:
Procedure DrawNumberAt (LeftPos, Number : Integer);
Var
Digit, DigitToTheRight : Integer;
Begin
DigitToTheRight := -1; // <<<<<< FEHLT!
Repeat
...