Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Точек на символ


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)


Наверх

Титульная страница Поиск, карта сайта Написать письмо