![]() |
|
|
![]()
|
|
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
подскажите пож-та самую простую программную реализацию подгонки ширины компонента (например эдита) под длину какого-то текста (например строка из переменной AnsiString a)...пробовал функцией Length, но она возвращает количество символов в строке, а не ее длину...
|
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Ширину строки, которая будет нарисована на канве, можно узнать с помощью метода TextWidth канвы. Но канва есть не у каждого компонента...
-------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
причем здесь канва? я про канву ничего не говорил...допустим есть 6 или 8-ми значное число и надо, чтобы ширина, например эдита, равнялась "ширине" данного числа...
|
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
А как по-вашему определить ширину выводимого текста? Эта самая ширина будет зависеть не только от самого текста, но и от типа и размера шрифта, которым осуществляется вывод.
Пример конечно дурацкий, работает правильно только если на у формы и едита совпадает тип и размер шрифта. Это сообщение отредактировал(а) Usper - 27.7.2009, 21:04 -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
понятно...вроде похоже на правду...а почему + именно 12? (и зачем вообще нужна эта добавка "+12"???)...b шрифты могут быть разные...как можно усовершенствовать данный пример?
|
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Усовершенствовать пример можно так:
Но лучше, конечно, сделать свой компонент, унаследовав его от TEdit и сделав доступной канву. Поле для вывода текста в TEdit уже чем сам TEdit из-за границ компонента, поэтому я и увеличил ширину Edit`а. К тому же есть один не понятный мне эффект: при вводе в такой Edit текст первый введённый символ может уехать за левую границу, не смотря на то, что места для вывода всей строки достаточно. Добавка в 12 пикселей к ширине вроде устраняет эту проблему... -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |