Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/56: Рейтинг темы: голосов - 56, средняя оценка - 4.84
5 / 5 / 1
Регистрация: 18.01.2010
Сообщений: 136
1

Как узнать размер строки в пикселях?

03.06.2012, 10:01. Показов 11656. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть строка. Хочу узнать размер в пикселях. Это надо для того, чтобы потом узнав размер окна, уменьшать размер строки (в окне) до тех пор, пока она не перестанет вылазить за край окна.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2012, 10:01
Ответы с готовыми решениями:

Как узнать ширину и высоту строки в пикселях не используя объект Canvas
Здравствуйте, скажите пожалуйста есть ли способ узнать ширину и высоту строки в пикселях, не...

Как узнать длину строки в пикселях?
Я там внизу спрашивала как узнать длину строки в пикселях. У меня строка есть и шрифт я знаю каким...

Как узнать длину текстовой строки в пикселях?
А может кто знает как узнать длину текстовой строки в пикселях или там сантиметрах не важно.(т.е...

Размер строки в пикселях
Нужно, имея файл шрифта, размер шрифта и string, вычислить предполагаемую ширину строки в пикселях,...

7
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
03.06.2012, 10:43 2
Проверяй Canvas.TextWidth(s) (Canvas - та канва, на которой строка будет отображаться)
1
5 / 5 / 1
Регистрация: 18.01.2010
Сообщений: 136
03.06.2012, 13:41  [ТС] 3
Запустил:
Delphi
1
line1 := Canvas.TextWidth(richedit1.Lines[0]);
Выдало определённый результат.
Но с удивлением обнаружил, что между этим результатом и размером окна нет видимого соотвествия.
Тепрь ломаю голову, какую формулу писать, чтобы знать когда и на сколько надо уменьшить текст.

Идеи есть?
0
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
03.06.2012, 14:45 4
Тебе нужно в RitchEdit текст впихать, как я понял. Там у него есть свойство Font.Size. Ищещь у себя строку, которая займёт максимальный размер в пикселях. Тебе это уже показали. Потом сравниваешь с RichEdit1.ClientWith. Если меньше или равно - влезает. В противном случае уменьшай размер шрифта и эту же строку проверяй на размер в пикселях. Сравнивай и т.п.
Имей в виду, что измерять размер в пикселях нужно именно на Canvas RichEdit-а. А поскольку в этом компоненте он, похоже, закрыт, то создай свой Canvas, ассоциируй Font с фонтом RichEdit-а и в нём потом делай испытания. Когда найдёшь нужный размер фонта - напишешь его в RichEdit.
Может кто знает лучший вариант, но я бы сделал так.
1
5 / 5 / 1
Регистрация: 18.01.2010
Сообщений: 136
04.06.2012, 09:22  [ТС] 5
Цитата Сообщение от Одиночка Посмотреть сообщение
...Потом сравниваешь с RichEdit1.ClientWith...
Дорогой харьковчанин,а почему вы говорите RichEdit1.ClientWith. У RichEdit есть только Width. О каком клиенте идёт речь?
0
422 / 352 / 19
Регистрация: 14.05.2012
Сообщений: 1,437
04.06.2012, 09:36 6
RichEdit1.ClientWith

а ты попробуй ввести.
1
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
04.06.2012, 12:46 7
а почему вы говорите RichEdit1.ClientWith. У RichEdit есть только Width. О каком клиенте идёт речь?
mpdasa: Это свойство недоступно на этапе проектирования в окне инспектора объектов, но программно оно доступно.
Я вообще описал всё очень грубо. А тебе,что трудно щелкнуть на RichEdit и нажать F1, найти нужное свойство, перевести текст и почитать? Я так и делаю.
1
LK
Заблокирован
04.06.2012, 15:01 8
RichEdit1.Client - само поле редактирования, без всяких рамочек, бордюрчиков и рюшечек.
2
04.06.2012, 15:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2012, 15:01
Помогаю со студенческими работами здесь

Есть ли возможность узнать длину строки в RTB в пикселях
У меня такая ситуация: есть строка в RichTextBox необходимо узнать ее длину в пикселях. Может кто -...

Как узнать размер строки как размер массива
const char* test_str = "01234\x00 789"; //очевидно, что strlen(test_str) == 5; sizeof(test_str)...

Как зафиксировать размер изображения в пикселях
Установил изображение на рабочий лист excell, на изображении присутствую части этого изображения...

Как узнать размер строки?
есть массив указателей string **str на объекта класс string; как узнать размер строки, записанной,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru