Ширина фразы | |
---|---|
lemenev Сообщений: 90 Дата регистрации: 23.06.2022 |
Как можно узнать ширину фразы в пикселях? Например, «Мама мыла раму», Arial, 14 ?
Цель – понять уместится ли текст в отведённый размер на форме. ![]() |
Re: Ширина фразы | |
---|---|
Taran Сообщений: 13586 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Есть какая-то функция, но там какие-то заморочки.
Проще разместить невидимый label хоть на форме, хоть на screen. Установить AutiSize=.T. и заполнять требуемым текстом. Ну и WordWrap оставить .F. конечно. P.S. А вообще TXTWIDTH(cExpression [, cFontName, nFontSize [, cFontStyle]]) Возвращает длину символьного выражения исходя из средней ширины символа для данного шрифта. Исправлено 1 раз(а). Последнее : Taran, 07.12.22 20:30 ![]() |
Re: Ширина фразы | |
---|---|
Taran Сообщений: 13586 Откуда: Красноярск Дата регистрации: 16.01.2008 |
У меня примерно так.
![]() |
Re: Ширина фразы | |
---|---|
akvvohinc Сообщений: 4001 Откуда: Москва Дата регистрации: 11.11.2008 |
Думаю, наоборот - Label должен быть видимым - Label.visible = .T. ![]() |
Re: Ширина фразы | |
---|---|
Taran Сообщений: 13586 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ну если не прокатит, то делать Visible и убирать за границу формы. Мне вообще это похрену. У меня все визуальные методы общего назначения собраны в объекте на основе класса Custom. А этот самый label вешается на этот Custom программным способ при инициализации класса. Соотв. видимым он никак не может быть. А теории раздувать на ровном месте .. не, не моё. ![]() |
Re: Ширина фразы | |
---|---|
Ydin Сообщений: 7640 Откуда: Киев Дата регистрации: 16.12.2005 |
У меня textbox невидимый
Исправлено 1 раз(а). Последнее : Ydin, 08.12.22 00:12 ![]() |
Re: Ширина фразы | |
---|---|
Taran Сообщений: 13586 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Извиняюсь конечно. А как с помощью TextBox вычислить ширину фразы в пикселях? Видимо я что-то пропустил в ЦПШ. ![]() |
Re: Ширина фразы | |
---|---|
akvvohinc Сообщений: 4001 Откуда: Москва Дата регистрации: 11.11.2008 |
Прям-таки и не может. ![]() А какая связь между "куда вешается" объект и его свойством Visible? Хотел бы посмотреть на реализацию (она, безусловно, возможна). Если Textbox в Design-time описан с некоторыми свойствами (или, что то же самое, "крепится" к родителю программно с помощью ADD OBJECT), то, конечно, он может быть и невидимым. Но только позже никакие изменения его свойств не приведут к изменению ширины, пока он не станет видимым. Но в примере выше, если я правильно его понял, у уже существующего Label меняются свойства. И тогда, если он был невидимый, его Label.Width не изменится. Может, я что-то в своё время "недокопал", но вот код, иллюстрирующий сказанное выше: Исправлено 2 раз(а). Последнее : akvvohinc, 08.12.22 02:33 ![]() |
Re: Ширина фразы | |
---|---|
Ydin Сообщений: 7640 Откуда: Киев Дата регистрации: 16.12.2005 |
Нет, сейчас посмотрел свой класс TextBox'a.
В нем мой метод AutoSize. В нем TXTWIDTH. Написано в прошлом веке и я забыл. А в другом месте через Лейбл. Лейбл точнее Исправлено 1 раз(а). Последнее : Ydin, 08.12.22 16:46 ![]() |
Re: Ширина фразы | |
---|---|
lemenev Сообщений: 90 Дата регистрации: 23.06.2022 |
Всем спасибо.
Меня вполне устроила комбинация функций TXTWIDTH() и FONTMETRIC():
![]() |
Re: Ширина фразы | |
---|---|
akvvohinc Сообщений: 4001 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Это только кажется и сильно зависит от типа шрифта (ну, и конечно, от ваших требований к точности определения ширины). Если он моноширинный, то, может, такой способ и подойдет. Исправлено 1 раз(а). Последнее : akvvohinc, 08.12.22 18:16 ![]() |
Re: Ширина фразы | |
---|---|
leonid Сообщений: 3180 Откуда: Рига Дата регистрации: 03.02.2006 |
Функции TxtWidth и FontMetric не имеют параметра FontCharSet, а ширина текста от этого параметра вполне зависит.
![]() |
Re: Ширина фразы | |
---|---|
of63 Автор Сообщений: 24629 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
() В винде функции [средней] ширины текстов сделаны на коленке. Но от них им уйти нельзя, т.к. старые прогеры на них "заложились", поэтому и не это все не реально изменить, или адекватно использовать. Воспринимайте эту функцию как "идею" (например, того, чего я сказал выше, или сво вариант), не более...
В винде ОЧЕНЬ МНОГО подобных ("ненужных") ф-ий Исправлено 1 раз(а). Последнее : of63, 11.12.22 01:21 ![]() |
© 2000-2023 Fox Club  |