Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать размер в пикселях занимаевого текстом, Текст выведен методом ТеxtOut 
:(
    Опции темы
devmstr
Дата 23.5.2004, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: 2
Всего: 11



Как узнать размер в пикселях занимаевого текстом выведенным методом TextOut.


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
Illusion Dolphin
Дата 23.5.2004, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



your_object.canvas.textwidth('My text')
your_object.canvas.textheight('My text')

Пример вывода текста по середине:

var b:Tbitmap;

///

b:=Tbitmap.create;
b.width:=500;
b.height:=600;
b.pixelformat:=pf24bit;
b.canvas.brush.color:=clwhite;
b.canvas.pen.color:=clwhite;
b.canvas.rectangle(0,0,500,600); // очищаем битмап
b.canvas.font.name:='Arial';
b.canvas.font.size:=12;
b.canvas.textout(b.width div 2-b.canvas.textwidth('My text'),b.height div 2-b.canvas.textheight('My text'), 'My Text');
form1.canvas.draw(0,0,b);
b.free;
b:=nil; //можно не указывать


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
AriX
Дата 23.5.2004, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 16.6.2003

Репутация: 5
Всего: 19



вот эта строчка немного неправильная
Цитата
b.canvas.textout(b.width div 2-b.canvas.textwidth('My text'),b.height div 2-b.canvas.textheight('My text'), 'My Text');


надо вот так
Цитата
b.canvas.textout((b.width - b.canvas.textwidth('My text')) div 2,(b.height - b.canvas.textheight('My text')) div 2, 'My Text');


PM MAIL   Вверх
Illusion Dolphin
Дата 23.5.2004, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Хм hehe.gif...
a/2-b/2 = (a-b)/2
С точки зрения оптимизации так получилось действительно меньше на одно деление и округлений только одно biggrin.gif...


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
x77
Дата 23.5.2004, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



с точки зрения оптимизации лучше не "а / 2", а "а shr 1"


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
x77
Дата 23.5.2004, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



хотя div, по идее, к тому и сводится..... ну да есть кому поправить, слава богу smile.gif


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
devmstr
Дата 23.5.2004, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: 2
Всего: 11



Нет, конечно спасибо, но только я не понял все же как узнать размер выведенного изображения.
Просто потом не введенный текст нужно стереть, а стирать больше чем надо нет возможности(ну естественно страдает производительность).


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
z-END
Дата 23.5.2004, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



magician так тебе размер изображения нужен или размер текста выведенного на канаве? если это то см Illusion Dolphin в первом же ответе написал на первой строчке ширину занимаемую текстом а на второй строчке высоту.

Цитата
your_object.canvas.textwidth('My text')
your_object.canvas.textheight('My text')




--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
AriX
Дата 23.5.2004, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 16.6.2003

Репутация: 5
Всего: 19



Illusion Dolphin
smile.gif ты попробуй свой пример - он не работает так как надо - там не ту второго деления ;))) вот я и поправил smile.gif
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0583 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.