Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Использование TCanvas для определения размера шрифта   Найти похожие ветки 

 
Yl2011   (2012-04-05 12:48) [0]

Здравствуйте!
Вот есть некий текст, ширину которого мне необходимо узнать.
Но в используемом компоненте “Canvas” работает некорректно
, поэтому мне необходимо создать свой и в нем все изменить с тем шрифтом и размером шрифта, который используется моем глючном компоненте, а потом приплюсовать эту ширину в компонент. Вот когда я делаю так, то не работает. Пишет «Canvas doesn’t allow drawning»:

Var
Ac:TCanvas;
begin
Ac:=TCanvas.Create;
Ac.Font.Name:="Arial";
Ac.Font.size:=12;
Showmessage(Inttostr(Ac.TextWidth("1111111111122222222")));
end;

А как правильно?


 
webpauk ©   (2012-04-05 12:55) [1]

Ac:=TCanvas.Create;
Ac.Handle:=GetDC(Application.Handle);


 
webpauk ©   (2012-04-05 12:56) [2]

вообще то это я для примера. тебе необходимо определить контекст канваса


 
Yl2011   (2012-04-05 13:10) [3]

Ваш пример работает!
А что это за строка:
Ac.Handle:=GetDC(Application.Handle);


 
webpauk ©   (2012-04-05 13:13) [4]

на абстрактном канвасе и возникает абстрактная ошибка. )))
канвас должен быть с чем-то связан (контекст)


 
webpauk ©   (2012-04-05 13:18) [5]


> Но в используемом компоненте “Canvas” работает некорректно

судя по всему надо сделать Ac.Handle:=GetDC(Component.Handle);


 
ford ©   (2012-04-06 21:18) [6]

для определения длины текста в пикселях, я использовал следующее
While DBGrid1.Canvas.TextWidth(nme)<200 do nme:=nme+" ";
где nme это строка с выводимым текстом

В вашем случае надо прислушаться к Yl2011
хотя, странно, но не ужели у Вас нет ни одного визуального компонента, наследника от TForm?



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.073 c
2-1340433843
Reqyzik
2012-06-23 10:44
2013.03.22
Бяда с XLS


2-1332325940
CRLF
2012-03-21 14:32
2013.03.22
А куда делось "Прочее"?


15-1351950219
Wonder
2012-11-03 17:43
2013.03.22
Какой хулиган удалил мой логин?


2-1339657502
AntiUser
2012-06-14 11:05
2013.03.22
Как правильно создать наследников фрейма


15-1342009409
alexdn
2012-07-11 16:23
2013.03.22
Скроллинг страницы