Цитата:
Сообщение от M.A.D.M.A.N.
Компонент надо либо под Ansi затачивать, либо под юникод.
|
Нет, дело не в кодировке...
По свойству ByUser выполняется одна из процедур doUserDraw и DrawText. Интересна функция DrawText тем, что после помещения в локальный битмап текста и слияния этого битмапа с канвой компонента нарисованной в doUserDraw фон текста остается непрозрачным, хотя этого быть не должно...
вот код функции DrawText
Код:
procedure TjvShape.DrawText;
var
bm:Tbitmap;
fx,fy,fw,fh:integer;
begin
bm:=tbitmap.create;
bm.width:=width;
bm.height:=height;
bm.canvas.font.assign(font);
fw:=bm.canvas.TextWidth (FCaption);
fh:=bm.canvas.TextHeight (FCaption);
if fw>xw then
fx:=5
else
fx:=(width-fw) div 2;
if fh>yh then
fy:=5
else
fy:=(height-fh) div 2;
if FCaptionCentered then
textrotate(bm,fx,fy,FCaptionAngle,FCaption,font)
else
textrotate(bm,FCaptionX,FCaptionY,FCaptionAngle,FCaption,font);
bm.transparent:=true;
bm.TransparentMode :=tmfixed;
bm.TransparentColor :=clwhite;
canvas.Draw (0,0,bm);
bm.free;
end;
Хелп, как говорится)