Автоматический размер CAPTION

fury21
Дата: 14.11.2009 12:57:14
У меня на форме текстовое поле обрамлено рамкой и в это поле каждый раз попадают слова разной длинны и если слово меньше половины рамки то выглядит это не очень красиво.

Как можно сделать чтобы размера поля менялся каждый раз под размер слов автоматический?!
как вариант
Дата: 14.11.2009 13:11:47
использовать моноширинный шрифт
методом тыка - определить сколько твипов поля уходит на букву
ну и менять Width поля под Len значения поля
mds_world
Дата: 14.11.2009 21:30:26
Пример с использованием WizHook. Походите по записям формы, поля меняют размер в зависимости от длины текста
PWW
Дата: 15.11.2009 12:52:35
mds_world,

У меня полностью не помещаются поля.
Последняя буква видна паполовину,или не видна наполовину.
Это что, зависит от какихто настроек винды?
шмордэнь
Дата: 15.11.2009 13:11:59
я добавил твипов
mds_world
Дата: 15.11.2009 13:17:08
Можно чуть-чуть переделать программу, добавив сотню твипов к ширине Внешний вид от этого только выиграет. Т.е. вместо ифа записать ctl.Width = n + 100. Или в целом
Private Sub Form_Current()
    Dim ctl As Control, i, j, m, n
    For Each ctl In Me.Controls
        If TypeName(ctl) = "textbox" Then
            n = WH_TwipsFromFont(Nz(ctl.value, ""), ctl.FontName, ctl.FontSize, _
            ctl.FontWeight, ctl.FontItalic, ctl.FontUnderline)
            ctl.Width = n + 100
        End If
        If Me.NewRecord Then ctl.Width = 1000
    Next
End Sub
Здесь также добавлена строка для новой записи с шириной полей в 1000 твипов
шмордэнь
Дата: 15.11.2009 13:21:13
PWW,

WH_TwipsFromFont = wzdx + 50