Количество строк в текстбоксе

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
allazar
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 20.11.2006 (Пн) 9:58

Количество строк в текстбоксе

Сообщение allazar » 23.11.2006 (Чт) 11:10

Проблемы с подсчетом количества строк в текстбоксе.
Использую
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const EM_GETLINECOUNT = &HBA
Private Sub Text1_Click()
Dim LineCount As Integer
LineCount = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)
MsgBox LineCount
End Sub
Если вставить в новый проект - все отлично.
Применяю в др. проекте - показывает кол-во строк 1 и еще скрывает текстбокс.
:shock:

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 23.11.2006 (Чт) 11:17

Странно... особенно насчет скрытия текстбокса.

З.Ы. Объяви lParam как ByVal lParam As Long, либо передавай ByVal 0&, хотя по идее это не должно бы вилиять на такие чудеса в конкретном проекте
Весь мир матрица, а мы в нем потоки байтов!

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.11.2006 (Чт) 11:29

А я число строк считаю так:

Код: Выделить всё


linecount=(len(text1.text)-len(replace(text1.text,vbcrlf,"",-1,1)))/2



:)

allazar
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 20.11.2006 (Пн) 9:58

Сообщение allazar » 23.11.2006 (Чт) 11:30

Фиг вам - национальная индейская изба!
:(

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.11.2006 (Чт) 11:32

Кому из нас конкретно фиг? :)

allazar
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 20.11.2006 (Пн) 9:58

Сообщение allazar » 23.11.2006 (Чт) 11:32

RayShade
Это если принудительный переход на др строку.
А если Text1.Multiline=True?

allazar
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 20.11.2006 (Пн) 9:58

Сообщение allazar » 23.11.2006 (Чт) 11:33

RayShade
Фиг мне :D
Вообщем с ума можно сойти!

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.11.2006 (Чт) 12:02

Хм... Да... В этом случае, не поможет даже вычисление длины текста в пикселях с последующим делением на ширину контрола, потому что слова могут переноситься...

Я в растерянности :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39

    TopList