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

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

Как узнать длину записи в пикселах написи в визуальном компоненте


novill ©   (2006-06-19 16:51:00) 

Есть строка и есть  Font, которым она написана.


novill   (2006-06-19 17:32:00) [1]

Спасибо.


begin...end   (2006-06-19 17:10:00) [2]

Контекст тоже нужен будет. Тогда GetTextExtentPoint32 (или TCanvas.TextWidth).


Игорь Шевченко   (2006-06-19 17:09:00) [3]

function GetTextWidthInPixels(AText: string; AControl: TControl): integer;
var
 propInfo: PPropInfo;
 thisFont: TFont;
begin
 Result := 0;

 propInfo := GetPropInfo(AControl.ClassInfo, 'Font');

 if propInfo <> nil then begin
   thisFont := TFont(GetObjectProp(AControl, 'Font'));

   if Assigned(thisFont) then
     with TControlCanvas.Create do
       try
         Control := AControl;
         Font.Assign(thisFont);
         Result  := TextWidth(AText);
       finally
         Free;
       end;
 end;
end;


Наверх

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