Всем доброго! На форме есть TextBox, в него планируется вносить данные построчно, и по условию если количество строк больше 8, уменьшать размер шрифта на шаг в меньшую сторону. Нашёл код для VB, крутил его, но так и не осилил, выдаёт ошибку на переменной hwnd. Для начала попытался по нажатию кнопки вывести в Label1 кол-во строк и символов - получилось! А вот количество линий - не выходит посчитать. Причем количество строк считает корректно, только при переводе на новую строку посредством Ctrl+Enter(поэтому посчитать надо количество линий, а не строк)
Код |
---|
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Const EM_GETLINECOUNT = 186
' Подсчет строк
Public Function Strok() As Long
Strok = UBound(Split(TextBox1.Text, vbNewLine)) + 1
End Function
' Подсчет символов
Public Function Simvols() As Long
Simvols = Len(TextBox1.Text)
End Function
Private Sub CommandButton1_Click()
Lin = SendMessage(TextBox1.hwnd, EM_GETLINECOUNT, 0&, 0&)
'Вывод происходит в Label:
Label1.Caption = "Кол-во строк:" & " " & Strok & " " & "Кол-во символов: " & Simvols & " " & "Кол-во линий: " & Lin
End Sub |