Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Использование 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.092 c
15-1353357002
Юрий
2012-11-20 00:30
2013.03.22
С днем рождения ! 20 ноября 2012 вторник


2-1338103675
Pcrepair
2012-05-27 11:27
2013.03.22
Application.ProcessMessages и загрузка процессора


2-1343717574
AV
2012-07-31 10:52
2013.03.22
Поток, организация проверки раз в секунду PostThreadMessage


15-1347721207
Artem
2012-09-15 19:00
2013.03.22
Посоветуйте простой инсталлятор creator?


15-1348042361
Просто_Андрей
2012-09-19 12:12
2013.03.22
Какой SSD выбрать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский