![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Точек на символ
snake1977 © (2002-11-25 12:54:00)Здравствуйте!! Подскажите пожалуйста, как мне узнать сколько точек в ширину, при выводе на экран, займет строка символов.
cult (2002-11-29 18:23:00) [1]DrawText с флагом DT_CALCRECT
Zwerg (2002-11-29 15:33:00) [2]Если шрифт имеет свойство Italic, то возможно придется
воспользоваться GetCharABCWidths(…)
function TextWidthEx(CV:TCanvas;AValue:AnsiString):LongInt;
var
Sc:Array[0..0] of TABC;
idx:LongInt;
begin
Result:=0;
if not Assigned(CV)
then
Exit;
if AValue=""
then
Exit;
Result:=CV.TextWidth(AValue);
Sc[0].abcA:=0;
idx:=Ord(AValue[1]);
GetCharABCWidths(CV.Handle,idx,idx,Sc);
Result:=Result-Sc[0].abcA;
Sc[0].abcC:=0;
idx:=Ord(AValue[Length(AValue)]);
GetCharABCWidths(CV.Handle,idx,idx,Sc);
Result:=Result-Sc[0].abcC;
end;
Игорь Шевченко (2002-11-25 12:57:00) [3]Canvas.TextWidth(YourString)