Помогите исправить

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

Помогите исправить

Сообщение ВуД » 18.08.2006 (Пт) 4:50

Вот у меня код который закрашивается определёное слово в компоненте RichTextBox.
Код: Выделить всё
Sub ColorIt(ByVal lBegPos As Long, ByVal lLength As Long)
    RichTextBox1.SelStart = lBegPos - 1
    RichTextBox1.SelLength = lLength
    RichTextBox1.SelColor = vbRed
End Sub

Private Sub RichTextBox1_Change()
Dim sst As Long, slln As Long
Dim lCurPos As Long
RichTextBox1.Enabled = False
sst = RichTextBox1.SelStart
slln = RichTextBox1.SelLength
RichTextBox1.SelStart = 0
RichTextBox1.SelLength = Len(RichTextBox1.Text) + 1
RichTextBox1.SelColor = vbBlack


lCurPos = 0
    Do
        lCurPos = InStr(lCurPos + 1, RichTextBox1.Text, "print", vbTextCompare)
        If lCurPos = 0 Then Exit Do
        ColorIt lCurPos, 5
    Loop

RichTextBox1.SelStart = sst
RichTextBox1.SelLength = slln
RichTextBox1.SelColor = vbBlack
RichTextBox1.Enabled = True
RichTextBox1.SetFocus
End Sub

Помогите исправить РихТекстбокс крутит скроллером сверху вниз, когда что либо вводиш. Ето становиться очень заметным, когда редактируеш длинный текст. Причина мне понятна, а вот решение - нет.
Помоги если знаешь!!!
мой сайт: mike-pro2006.narod.ru

Serge Gavrilov
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 26.01.2006 (Чт) 11:35

Сообщение Serge Gavrilov » 18.08.2006 (Пт) 8:40

А зачем вы каждый раз на начало уходите?
А зачем каждый раз весь текст проверять?

Efiop
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 06.06.2006 (Вт) 12:14
Откуда: РК

Сообщение Efiop » 18.08.2006 (Пт) 11:19

ВуД а это тебе для чего надо? Типа как в Васике, подсветка операторов и функций или че-то другое?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 18.08.2006 (Пт) 12:02

Код: Выделить всё
Private Sub RichTextBox1_Change()
Dim sst As Long, slln As Long
Dim lCurPos As Long
sst = RichTextBox1.SelStart
slln = RichTextBox1.SelLength
lCurPos = InstrRev(RichTextBox1.Text, " ", sst)
If CurPos = 0 Then CurPos = sst
    Do
        lCurPos = InStr(lCurPos + 1, RichTextBox1.Text, "print", vbTextCompare)
        If lCurPos = 0 Then Exit Do
        ColorIt lCurPos, 5
    Loop
RichTextBox1.SelStart = sst
RichTextBox1.SelLength = slln
End Sub
Лучший способ понять что-то самому — объяснить это другому.

ВуД
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 59
Зарегистрирован: 23.02.2006 (Чт) 17:40
Откуда: Иркутск (Сибирь)

Сообщение ВуД » 19.08.2006 (Сб) 7:02

Antonariy писал(а):
Код: Выделить всё
Private Sub RichTextBox1_Change()
Dim sst As Long, slln As Long
Dim lCurPos As Long
sst = RichTextBox1.SelStart
slln = RichTextBox1.SelLength
lCurPos = InstrRev(RichTextBox1.Text, " ", sst)
If CurPos = 0 Then CurPos = sst
    Do
        lCurPos = InStr(lCurPos + 1, RichTextBox1.Text, "print", vbTextCompare)
        If lCurPos = 0 Then Exit Do
        ColorIt lCurPos, 5
    Loop
RichTextBox1.SelStart = sst
RichTextBox1.SelLength = slln
End Sub

Ну здесь же тоже козяк есть слово в которой меняется цвет после каждого пробела выделяется и это тоже заметно. А как сделать без всяких касиков?
Помоги если знаешь!!!
мой сайт: mike-pro2006.narod.ru

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 19.08.2006 (Сб) 9:42

rtb очень капризный контрол, так что пилите, Шура, пилите. Пару лет назад я делал подсветку html кода в rtb и по крайней мере твои проблемы как-то решил. Если найду исходники, напишу как у меня было. Одно помню, использовал второй невидимый rtb.
Лучший способ понять что-то самому — объяснить это другому.

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 21.08.2006 (Пн) 22:07

Если для подсветки кода - то скачай CodeMax (контрол от WinMain) - очень полезная вещь
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

ВуД
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 59
Зарегистрирован: 23.02.2006 (Чт) 17:40
Откуда: Иркутск (Сибирь)

Сообщение ВуД » 23.08.2006 (Ср) 13:46

ВуД писал(а):
Antonariy писал(а):
Код: Выделить всё
Private Sub RichTextBox1_Change()
Dim sst As Long, slln As Long
Dim lCurPos As Long
sst = RichTextBox1.SelStart
slln = RichTextBox1.SelLength
lCurPos = InstrRev(RichTextBox1.Text, " ", sst)
If CurPos = 0 Then CurPos = sst
    Do
        lCurPos = InStr(lCurPos + 1, RichTextBox1.Text, "print", vbTextCompare)
        If lCurPos = 0 Then Exit Do
        ColorIt lCurPos, 5
    Loop
RichTextBox1.SelStart = sst
RichTextBox1.SelLength = slln
End Sub

Ну здесь же тоже козяк есть слово в которой меняется цвет после каждого пробела выделяется и это тоже заметно. А как сделать без всяких касиков?

Когда очещаеш текст то появляется ошибка как ее можно исправить?
Помоги если знаешь!!!
мой сайт: mike-pro2006.narod.ru

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 23.08.2006 (Ср) 14:07

:scratch: Обработать?
Лучший способ понять что-то самому — объяснить это другому.

ВуД
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 59
Зарегистрирован: 23.02.2006 (Чт) 17:40
Откуда: Иркутск (Сибирь)

Сообщение ВуД » 23.08.2006 (Ср) 17:55

Обработать?

Обработать как?
Помоги если знаешь!!!
мой сайт: mike-pro2006.narod.ru

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

Сообщение alibek » 23.08.2006 (Ср) 18:33

:scratch: Кодом?
Lasciate ogni speranza, voi ch'entrate.

ВуД
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 59
Зарегистрирован: 23.02.2006 (Чт) 17:40
Откуда: Иркутск (Сибирь)

Сообщение ВуД » 24.08.2006 (Чт) 4:51

alibek писал(а)::scratch: Кодом?

Я побовал и ни как не получается :cry: . Помогите пожалюйста.
Помоги если знаешь!!!
мой сайт: mike-pro2006.narod.ru


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

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

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

    TopList