Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2014, 17:38   #1
codeok
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 11
Вопрос TextOut - Текст за границей клиентской области

Здравствуйте. Рисую на TCustomControl канвой - TextOut. Так вот как мне определить что текст из TextOut вышел за границу моей клиентской области и насколько?
codeok вне форума Ответить с цитированием
Старый 08.10.2014, 17:45   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вычисли длину текста в пикселях и сравни с шириной клиентской области. У канвас есть метод для этого
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.10.2014, 17:47   #3
codeok
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 11
По умолчанию

А если по вертикали(много горизонтальных строк), то как вычислять?
codeok вне форума Ответить с цитированием
Старый 08.10.2014, 17:48   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

можно прикрутить WinAPI шную функу DrawText(). У нее есть параметр с флагом DT_WORDBREAK
Цитата:
Breaks words. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by the lpRect parameter. A carriage return-linefeed sequence also breaks the line.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.10.2014, 18:50   #5
codeok
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 11
По умолчанию

А как нибудь про линию можно узнать, что она за границу вышла?
codeok вне форума Ответить с цитированием
Старый 08.10.2014, 19:20   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от codeok Посмотреть сообщение
А если по вертикали(много горизонтальных строк), то как вычислять?
всё есть....
Изображения
Тип файла: png 9.png (7.1 Кб, 58 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.10.2014, 19:45   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А как нибудь про линию можно узнать, что она за границу вышла?
Пересчитать координаты конечно же )
Ты же как-то их задаешь двумя точками, вот и вычисляй где коллизия.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить координаты клиентской области окна TwiX Win Api 6 19.09.2011 17:22
Рамка вокруг клиентской области окна pladen HTML и CSS 2 26.08.2011 15:22
Прямоугольник клиентской области Sibedir Общие вопросы Delphi 2 17.02.2011 13:31
перерисовка/обновление клиентской области окна ImmortalAlexSan Общие вопросы Delphi 0 09.01.2011 16:19
Программа,которая автоматически копирует текст в заданной области в браузере и вставляет в эксель Clockgen Фриланс 7 19.10.2010 10:12