PDA

Просмотр полной версии : [VB]Разукрашивание текста в RichTextBox


xVampirx
28.04.2009, 20:22
RTB дает право пользователю изменять только цвет всего текста,вот моя функция которая исправляет данное недоразумение:
Пишем публичную переменную:
Public msg As String
Добавляем функцию:
Function addMSG(ByVal text As String)
'////////////////////////////////////////
'//////Colored RichTextBox by Vampir/////
'////// Icq:374-398-033 /////
'////////////////////////////////////////


'//////////////Шрифт/////////////////////
Const font = "Tahoma"

msg = msg + text
If msg <> "" Then
msg = msg + vbCrLf + " "
End If

'/////////////Цвета/////////////////////
'^1 - Черный Default
'^2 - Малиновый
'^3 - Зеленый
'^4 - Оливковый
'^5 - Темно синий
'^6 - Сиреневый
'^7 - Бирюзовый
'^8 - Серый
'^9 - Серебристый
'^10 - Красный
'^11 - Трявяной
'^12 - Желтый
'^13 - Синий
'^14 - Розовый
'^15 - Голубой
'^16 - Белый
'//////////////////////////////////////
msg = Replace(msg, "^1", "\cf1") '1
msg = Replace(msg, "^2", "\cf2") '2
msg = Replace(msg, "^3", "\cf3") '3
msg = Replace(msg, "^4", "\cf4") '4
msg = Replace(msg, "^5", "\cf5") '5
msg = Replace(msg, "^6", "\cf6") '6
msg = Replace(msg, "^7", "\cf7") '7
msg = Replace(msg, "^8", "\cf8") '8
msg = Replace(msg, "^9", "\cf9") '9
msg = Replace(msg, "^10", "\cf10") '10
msg = Replace(msg, "^11", "\cf11") '11
msg = Replace(msg, "^12", "\cf12") '12
msg = Replace(msg, "^13", "\cf13") '13
msg = Replace(msg, "^14", "\cf14") '14
msg = Replace(msg, "^15", "\cf15") '15
msg = Replace(msg, "^16", "\cf16") '16

'////////////Большие буквы/////////////

msg = Replace(msg, "А", "\'c0") '1
msg = Replace(msg, "Б", "\'c1") '2
msg = Replace(msg, "В", "\'c2") '3
msg = Replace(msg, "Г", "\'c3") '4
msg = Replace(msg, "Д", "\'c4") '5
msg = Replace(msg, "Е", "\'c5") '6
msg = Replace(msg, "Ё", "\'a8") '7
msg = Replace(msg, "Ж", "\'c6") '8
msg = Replace(msg, "З", "\'c7") '9
msg = Replace(msg, "И", "\'c8") '10
msg = Replace(msg, "Й", "\'c9") '11
msg = Replace(msg, "К", "\'ca") '12
msg = Replace(msg, "Л", "\'cb") '13
msg = Replace(msg, "М", "\'cc") '14
msg = Replace(msg, "Н", "\'cd") '15
msg = Replace(msg, "О", "\'ce") '16
msg = Replace(msg, "П", "\'cf") '17
msg = Replace(msg, "Р", "\'d0") '18
msg = Replace(msg, "С", "\'d1") '19
msg = Replace(msg, "Т", "\'d2") '20
msg = Replace(msg, "У", "\'d3") '21
msg = Replace(msg, "Ф", "\'d4") '22
msg = Replace(msg, "Х", "\'d5") '23
msg = Replace(msg, "Ц", "\'d6") '24
msg = Replace(msg, "Ч", "\'d7") '25
msg = Replace(msg, "Ш", "\'d8") '26
msg = Replace(msg, "Щ", "\'d9") '27
msg = Replace(msg, "Ъ", "\'da") '28
msg = Replace(msg, "Ы", "\'db") '29
msg = Replace(msg, "Ь", "\'dc") '30
msg = Replace(msg, "Э", "\'dd") '31
msg = Replace(msg, "Ю", "\'de") '32
msg = Replace(msg, "Я", "\'df") '33





'/////Маленькие буквы//////////////////



msg = Replace(msg, "а", "\'e0") '1
msg = Replace(msg, "б", "\'e1") '2
msg = Replace(msg, "в", "\'e2") '3
msg = Replace(msg, "г", "\'e3") '4
msg = Replace(msg, "д", "\'e4") '5
msg = Replace(msg, "е", "\'e5") '6
msg = Replace(msg, "ё", "\'b8") '7
msg = Replace(msg, "ж", "\'e6") '8
msg = Replace(msg, "з", "\'e7") '9
msg = Replace(msg, "и", "\'e8") '10
msg = Replace(msg, "й", "\'e9") '11
msg = Replace(msg, "к", "\'ea") '12
msg = Replace(msg, "л", "\'eb") '13
msg = Replace(msg, "м", "\'ec") '14
msg = Replace(msg, "н", "\'ed") '15
msg = Replace(msg, "о", "\'ee") '16
msg = Replace(msg, "п", "\'ef") '17
msg = Replace(msg, "р", "\'f0") '18
msg = Replace(msg, "с", "\'f1") '19
msg = Replace(msg, "т", "\'f2") '20
msg = Replace(msg, "у", "\'f3") '21
msg = Replace(msg, "ф", "\'f4") '22
msg = Replace(msg, "х", "\'f5") '23
msg = Replace(msg, "ц", "\'f6") '24
msg = Replace(msg, "ч", "\'f7") '25
msg = Replace(msg, "ш", "\'f8") '26
msg = Replace(msg, "щ", "\'f9") '27
msg = Replace(msg, "ъ", "\'fa") '28
msg = Replace(msg, "ы", "\'fb") '29
msg = Replace(msg, "ь", "\'fc") '30
msg = Replace(msg, "э", "\'fd") '31
msg = Replace(msg, "ю", "\'fe") '32
msg = Replace(msg, "я", "\'ff") '33

'////////////////Символы///////////////
msg = Replace(msg, vbCrLf, "\par") 'Перенос каретки
'//////////////////////////////////////


RichTextBox2.Rtf = "{\rtf1\ansi\ansicpg1251\deff0{\fonttbl{\f0\fswiss\ fprq2\fcharset204 " + font + ";}{\f1\fnil\fcharset0 ;}}{\colortbl ;\red0\green0\blue0;\red128\green0\blue0;\red0\gre en128\blue0;\red128\green128\blue0;\red0\green0\bl ue128;\red128\green0\blue128;\red0\green128\blue12 8;\red128\green128\blue128;\red192\green192\blue19 2;\red255\green0\blue0;\red0\green255\blue0;\red25 5\green255\blue0;\red0\green0\blue255;\red255\gree n0\blue255;\red0\green255\blue255;\red255\green255 \blue255;}{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\tx1278\cf1\lang1 049\b\f0\fs16\ " + msg + "\par\lang1033\b0\f1\par}"

Return 1
End Function

Вызываем функцию:
Call addMSG("^3Hello ^5world ^6 " + Now)
P.S.
Изначально функция использовалась для системы логов ,но думаю исправить под себя проблем не составит.
P.S.2
Компилер vs2008.
P.S.3
При использование в опен сурс проэктах наличие копирайтов в функции обязательно.