Страница: 1 |
Задача - окрасить некоторые слова разным цветом. Для этого я find- нахожу слова и selcolor - окрашиваю. Но возникает проблема - после смены текста , весь текст окрашивается в цвет последнего окрашенного слова!!! И еще вопросик - после окрашивания мой текст немного скроллится вниз, как сделать так чтобы он снова был виден с первой строчки?
Тогда новые вопросы 1) как выделить весь текст 2) как поставить положение кареткив начало текста 1. Выделить весь текст: With RichTextBox1 2. Установить каретку в начало текста: With RichTextBox1 Привет, мне как то надо было в РТБ выделить строки типа VCOMM_ReadComm SIEMENS M35i (Analog V.32) SUCCESS Length: 6: 0D 0A 4F 4B 0D 0A (OK) разным цветом в зависимости от содержимого, а также выжернить текст в скобках и вот что получилось Спасибо за помощь - все работает. Страница: 1 |
Вопрос: RichTextBox
Добавлено: 24.07.03 17:41
Автор вопроса: Trusishka | ICQ: 229751913
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
Padre
ICQ: 346632205
Вопросов: 25
Ответов: 215
Web-сайт:
Профиль | | #1
Добавлено: 24.07.03 19:31
покажи код - тогда гораздо проще будет разобраться
Номер ответа: 2
Автор ответа:
shuffle
Администратор
ICQ: 201502381
Вопросов: 15
Ответов: 737
Профиль | | #2
Добавлено: 24.07.03 20:54
1. Перед сменой текста, выделяй весь текст и окрашивай в чёрный (или тот который тебе нужен)
2. Запоминай перед окрашиванием позицию каретки, а потом устанавливай обратно. А если нужно просто показать текст с первой строки, то установи каретку в самое начало...
Номер ответа: 3
Автор ответа:
Trusishka
ICQ: 229751913
Вопросов: 36
Ответов: 48
Профиль | | #3
Добавлено: 25.07.03 10:13
Номер ответа: 4
Автор ответа:
shuffle
Администратор
ICQ: 201502381
Вопросов: 15
Ответов: 737
Профиль | | #4
Добавлено: 25.07.03 14:35
.SelStart = 0
.SelLength = Len(.Text)
End With
.SelStart = 0 'Соответственно устанавливай любое _
положение каретки...
End With
Номер ответа: 5
Автор ответа:
Malyav
ICQ: 8440085
Вопросов: 15
Ответов: 117
Web-сайт:
Профиль | | #5
Добавлено: 25.07.03 20:04
VCOMM_WriteComm SIEMENS M35i (Analog V.32) SUCCESS Length: 8: 41 54 51 56 31 45 30 0D (ATQV1E0)
VCOMM_ReadComm SIEMENS M35i (Analog V.32) SUCCESS Length: 6: 0D 0A 4F 4B 0D 0A (OK)
VCOMM_WriteComm SIEMENS M35i (Analog V.32) SUCCESS Length: 4: 41 54 41 0D (ATA)
VCOMM_ReadComm SIEMENS M35i (Analog V.32) SUCCESS Length: 11: 0D 0A 43 4F 4E 4E 45 43 54 0D 0A (CONNECT)
VCOMM_WriteComm SIEMENS M35i (Analog V.32) SUCCESS Length: 9: FF 13 80 00 4F F8 00 10 03 (яЂ
Dim i As Integer
Dim j As Integer
i = 1
j = InStr(i + 1, RTB.Text, vbCrLf)
Do
RTB.SelStart = i
RTB.SelLength = j - i
If InStr(1, RTB.SelText, "Write") <> 0 Then
RTB.SelColor = vbRed
i = InStrRev(RTB.Text, "(", j) - 1
RTB.SelStart = i
RTB.SelLength = j - i
RTB.SelColor = vbBlack
RTB.SelBold = True
ElseIf InStr(1, RTB.SelText, "Read") <> 0 Then
RTB.SelColor = vbBlue
i = InStrRev(RTB.Text, "(", j) - 1
RTB.SelStart = i
RTB.SelLength = j - i
RTB.SelColor = vbBlack
RTB.SelBold = True
Else
RTB.SelColor = 1598480
i = InStrRev(RTB.Text, "(", j) - 1
RTB.SelStart = i
RTB.SelLength = j - i
RTB.SelColor = vbBlack
RTB.SelBold = True
End If
i = j
j = InStr(i + 1, RTB.Text, vbCrLf)
Loop While j <> 0
Номер ответа: 6
Автор ответа:
Trusishka
ICQ: 229751913
Вопросов: 36
Ответов: 48
Профиль | | #6
Добавлено: 28.07.03 10:05
Номер ответа: 7
Автор ответа:
Alekz
ICQ: 273858307
Вопросов: 0
Ответов: 2
Профиль | | #7
Добавлено: 27.06.05 07:00
а как быть если RichTextBox содержит несколько сотен строк и все их надо раскрасить в разные цвета?
у меня проблема. есть контрол RichTextBox в который нужно добавлять строки разного цвета, поочерёдно. Например, как в чате. Вроде бы вышеописанный метод работает, но если текста довольно много возникает проблема.
Хотя главная проблема не в том как разукрасить строчки, а как добавить новую строку другого цвета, так чтобы не изменились старые?? Помогите плиз...
Номер ответа: 8
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #8
Добавлено: 27.06.05 10:23
Все так же
With RichTextBox1
.SelStart = Len(.Text)
.SelColor = vbRed
.SelText = "New Text"
End With
Номер ответа: 9
Автор ответа:
Alekz
ICQ: 273858307
Вопросов: 0
Ответов: 2
Профиль | | #9
Добавлено: 27.06.05 22:50
2LamerOnLine
Спасибо, работает. Всё куда проще чем я думал.