позиция курсора

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

позиция курсора

Сообщение _NeoN_ » 02.09.2003 (Вт) 16:14

Есть текстбокс(или рич текст бокс) как кзнать на какой строке, столбце находится указатель???

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4158
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 02.09.2003 (Вт) 17:05

text1.SelStart укажет символ, а строку, видимо, нужно высчитать самому.

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 02.09.2003 (Вт) 17:12

хитро!!! но вот только сказал бы ты еще КАК ее вычислить)) не только строку но и столбец..

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.09.2003 (Ср) 6:18

Читайте факи
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4158
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 03.09.2003 (Ср) 14:11

Вот нас ткнули носом в то, что я имел ввиду...

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 03.09.2003 (Ср) 14:30

это я и сам сделал... но вот проблема в том что медленно все это очень=( мне бы быстрее как-нить... апи там какую-нить или еще что...

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4158
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 03.09.2003 (Ср) 16:05

А если вместе с текстбоксом вести массив с номерами первого символа каждой строки. А текстбокс с массивом запихнуть в свой юзерконтрол, чтобы при событии Change текста автоматически изменять массив.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.09.2003 (Ср) 16:25

Если нужно быстрее, то переделай код. Не используй переборы и вместо InStrRev используй InStr.
Примерно так (код я не проверял, это твое домашнее задание :) )
Этот код будет правильно работать только в случае, если ScrollBars=3. В остальных случаях текст будет переносится автоматически и для них нужно использовать не-помню-какую-API.
Код: Выделить всё
'Define row and col
Sub GetRowCol(TextCtrl As TextBox, Optional ByRef Row As Long, Optional ByRef Col As Long)
Dim P As Long, I0 As Long, I As Long, T As String
T = TextCtrl.Text
P = TextCtrl.SelStart '+ TextCtrl.SelLength
I0 = 1
Row = 1
Do
  I = InStr(I0, T, vbNewLine)
  If I = 0 Or I => P Then Exit Do
  I0 = I + Len(vbNewLine)
  Row = Row + 1
Loop
Col = P - I0 + 1
End Sub
Lasciate ogni speranza, voi ch'entrate.

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 04.09.2003 (Чт) 18:35

ну вот работает вроде быстро только я ставлю в RichTextBox scrollbars=3 both но все равно есть только 1 стролбар - вертикальный.. горизонтальный тока через sendmessage чтоли добавлять??? не напомните параметры???

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 05.09.2003 (Пт) 9:06

Указывай свойство .RightMargin. По уму его надо задавать равным самой длинной строке + один пиксел, но можешь задать заведомо большое число (1e6).
Lasciate ogni speranza, voi ch'entrate.

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 05.09.2003 (Пт) 15:18

ну это опять геморрррррой с определением самой длинной строки =( опять же медленно будет работать.. может кто скажет как подключать асмовские библиотеки в вб.. что надо в них писать и что в басике..

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4158
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 05.09.2003 (Пт) 16:03

Я пишу на Delphi асмовские процедуры, компилю их в DLL и подключаю также, как подключаются API ф-ции.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 05.09.2003 (Пт) 16:46

Так не определяй. Впиши в его значение что-то вроде двух миллионов и достаточно.
Mikle, вообще-то не так :) Ты подключаешь ActiveX DLL, а API подключать не надо, это Native DLL.
Lasciate ogni speranza, voi ch'entrate.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4158
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 05.09.2003 (Пт) 17:51

Ну не подключаю, а декларирую. Также, ка АПИ. Ведь на Delphi можно написать native DLL, это не бейсик?

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 06.09.2003 (Сб) 18:43

дело в том что в бакие нету встроенного ассемблера( а жаль!!!!) вот например напишу я библиотеку на masm32 то как ее подключить и что писать в ней?

Messir
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 15.08.2003 (Пт) 14:29

Сообщение Messir » 06.09.2003 (Сб) 19:03

Это легко реализуется с помощью двух-трех API-вызовов. Только вот точно не помню сейчас, каких именно. :-( Я поищу, и скину тогда!!! Если еще не будет поздно.
<<MESS WITH THE BEST,
DIE LIKE THE REST>>

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 08.09.2003 (Пн) 16:04

мне особо не надо торопиться но посмотри


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 14

    TopList