procedure PrintText(Canvas: TCanvas; Text: String; Rect: TRect);
var
OldAlign: cardinal;
FName: String;
begin
InflateRect(Rect, -1, -1);
Canvas.FillRect(Rect);
OldAlign:= SetTextAlign(Canvas.Handle, TA_UPDATECP or TA_RIGHT);
MoveToEx(Canvas.Handle, Rect.Right, Rect.Top, nil);
FName:= Canvas.Font.Name;
Canvas.Brush.Style:= bsClear;
TextOut(Canvas.Handle, 0, 0, PCHAR(Copy(Text, 2, Length(Text)-1)), Length(Text)-1);
Canvas.Font.Name:= 'Symbol';
TextOut(Canvas.Handle, 0, 0, PCHAR(Copy(Text, 1, 1)), 1);
SetTextAlign(Canvas.Handle, OldAlign);
Canvas.Font.Name:= FName;
end;