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

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

Длина строки [D7]


PrettyFly ©   (2003-02-05 15:18:00) 

Есть ли какая-нть функция, определеяющая длину строки, написанную данным шрифтом (в пикселях)?


DarkGreen   (2003-02-06 05:28:00) [1]

The GetTextExtentPoint32 function computes the width and height of the specified string of text. This function supersedes the GetTextExtentPoint function.

BOOL GetTextExtentPoint32(

HDC hdc, // handle of device context
LPCTSTR lpString, // address of text string
int cbString, // number of characters in string
LPSIZE lpSize // address of structure for string size
);


PrettyFly   (2003-02-05 16:55:00) [2]

Всё заработало ;)


Skier   (2003-02-05 16:35:00) [3]

>PrettyFly
Дружище, а ведь тебе и пример уже дали...
А "Canvas does not allow drawing" потому что не задан
контекст устройства, на котором рисовать см. TCanvas.Handle


PrettyFly   (2003-02-05 16:10:00) [4]


...
C := TCanvas.Create;
Res := C.TextWidth("la-la-lalala");

Показывает ошибку "Canvas does not allow drawing", почему?


Song   (2003-02-05 16:06:00) [5]

DrawText()


PrettyFly   (2003-02-05 15:41:00) [6]

Спасиба! А я думал есть стандартная фунукция...


Игорь Шевченко   (2003-02-05 15:32:00) [7]

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;


Skier   (2003-02-05 15:21:00) [8]

1) TCanvas.Font.Assign(...)
2) TCanvas.TextWidth(...)


Наверх

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