C++Builder
Начало
Форум
Помощь
Войти
Регистрация
C++Builder
>
Forum
>
Вопросы программирования
>
Общие вопросы программирования в C++Builder
>
Текстовая строка не шире чем компонент Image
Страниц: [
1
]
Вниз
Печать
Автор
Тема: Текстовая строка не шире чем компонент Image (Прочитано 1226 раз)
leoboec
Участник
Сказали спасибо: +1/-2
Offline
Сообщений: 189
За красоту! ;)
Текстовая строка не шире чем компонент Image
«
:
07 Сентябрь 2018, 20:20:29 »
Добрый день подскажите можно ли и с мощью какого компонента реализовать вот какую задачу:
есть 2 формы. На 1 форме вводится текст в Edit на второй есть Panel на которой Image по размеру они растянуты на форму. и во далее мне надо чтобы текст из Edit с 1 формы попал на вторую. НО текст может состоять из 20-50 символов примерно. Мне надо чтобы шрифт как бы "автоматом" подстраивался под количество букв, чтобы эта срока оставалась одной строкой (без переноса) и чтобы она не вылазила за пределы Image который как фон формы в прицнипе. Реально ли это?! и если да то какими средствами и компонентами?!
Записан
Ravil
НЕ стыдно не знать стыдно не учится
Участник
Сказали спасибо: +2/-2
Offline
Сообщений: 167
Re: Текстовая строка не шире чем компонент Image
«
Ответ #1 :
18 Октябрь 2018, 19:54:25 »
не совсем конечно понятно, что вы хотите получить в итоге, но думаю , что можно попробовать использовать Label растянуть его максимально и задать Alignment=taCentr;
Записан
Hex
Участник
Сказали спасибо: +16/-2
Offline
Сообщений: 36
Re: Текстовая строка не шире чем компонент Image
«
Ответ #2 :
06 Декабрь 2018, 21:18:23 »
вариант раз - разбить строку на символы и вручную перерасчитать кернинг
вариант два - подумать головой над юзабилити и сделать нормально
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2132
S0mbre
Re: Текстовая строка не шире чем компонент Image
«
Ответ #3 :
07 Февраль 2019, 13:53:40 »
Смотрите на методы TextWidth, TextHeight, TextExtent класса TCanvas. Простой пример.
Т.е. вам надо:
1) опытным путем соотнести разные ширины текста с размером и семейством шрифта (при условии автоматического переноса текста, например в методе TCanvas::TextRect), как вариант сохранить в статический массив;
2) на событие OnChange поля (TEdit) повесить обработчик, в котором изменять шрифт в канве в зависимости от длины вводимого текста
Записан
Страниц: [
1
]
Вверх
Печать
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Вопросы программирования
-----------------------------
=> Общие вопросы программирования в C++Builder
=> Программирование с FMX
=> Работа с базами данных в C++Builder
=> Windows API
=> Технологии COM/DCOM, ActiveX
=> Аспекты и идеология профессиональной разработки ПО
=> Компьютерное железо и системное администрирование
=> студенческий городок
-----------------------------
Обсуждение материалов на сайте
-----------------------------
=> Обсуждений статей на сайте
=> Обсуждение материалов из файлового архива
=> Компоненты сторонних разработчиков к С++Builder
-----------------------------
Работа сайта и новости
-----------------------------
=> Ищу/предлагаю работу
=> Новости из мира программирования
=> Новости - события календаря
=> Голосования
=> Компьютерный юмор и приколы
=> Работа сайта
=> Флейм
-----------------------------
FAQ - частозадаваемые вопросы/ответы
-----------------------------
=> FAQ, общие вопросы, посвящённые C++Builder
=> FAQ, вопросы по базам данных
=> FAQ, вопросы по компонентам
Загружается...