Attached is what it looks like with the sysToUtf8 & setting lbMonthYear color to red.
The extend of the red bar is identical. Found that this is a font issue. Dropping a label on a form with the default autosize I see that setting fsItalic doesn't change the width of the label. Tried plain arial and the width changes when setting fsItalic and no cut off occurs. Tried several fonts and it appears that only fonts that have a native italic version are OK. Arial has a Arial Italic but Arial Unicode MS which doesn't have a italic version fails. So somewhere the "calculated" italic is causing the problem. This seems to be a windows problem. Tried this in MSWord with the same fonts and
20121234 at 36 points is correctly spaced with Arial but with Arial Unicode MS the 2 touches the 1.
I did try the sysToUtf8, but for Hebrew it didn't seem to work
I had seen that in your previous message. But unless your calendar is for the English/Hebrew market only, showing correct labels for the rest of the western world would be useful.
Perhaps Avishai can tell us what function he uses to convert the Hebrew code (1255 ?) page to utf8.
I did some experimenting on 2.7.1, without changing my system to Hebrew, with cp 1255 and the following transforms the special French characters to Hebrew.
for i:=1 to 12 do
begin
s:=FormatSettings.LongMonthNames[i];
SetCodePage(s,1255,false);
FormatSettings.LongMonthNames[i]:=SysToUTF8(s);
end;
If that works then or the default codepage detection is wrong or the codepage is not set correctly when filling in the FormatSettings strings. What is DefaultCodePage and StringCodePage(FormatSettings.LongMonthNames[1]) returning on a Hebrew system?