Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: rembolso en 24 Noviembre 2010, 01:50 am



Título: RichTextBox que me mata la cabeza..
Publicado por: rembolso en 24 Noviembre 2010, 01:50 am
hola. estoy trabajando con  cadenas de colores  y solo se marcan 2 cadenas ..
la idea es: tener una simple cadena donde al encontar cierto caracter  seguido de un numero del 0 al 7 se marque toda la cadena anterior del color asigando :

nota : ADD ES EL  RichTextBox , ColorSet ES LA FUNCION PARA DETERMINAR EL COLOR DEL  0 AL 7. EL @ ES EL CARACTER que es seguido de un numero para determinar el color..

Citar
Private Function ColorSet(Datos As String)
Select Case Datos
Case "0"
ColorSet = vbBlack
Case "1"
ColorSet = vbRed
Case "2"
ColorSet = vbGreen
Case "3"
ColorSet = vbYellow
Case "4"
ColorSet = vbBlue
Case "5"
ColorSet = &HFFFF00
Case "6"
ColorSet = 16711935
Case "7"
ColorSet = vbWhite
End Select
End Function

Private Function dd(Datos As String)
Dim i, Conteo, LLeva
LLeva = 0
Conteo = 0
For i = 1 To Len(Datos)
Conteo = Conteo + 1
If Mid(Datos, i, 1) = "@" Then
LLeva = LLeva + 1
Add.Text = Add.Text & Mid(Datos, i - Conteo + 1, Conteo - 1)
Add.SelStart = i - Conteo - LLeva + 1
Add.SelLength = Conteo - 1
Add.SelColor = ColorSet(Mid(Datos, i + 1, 1))
conteo = "0"
Else
End If
Next i
End Function

El problema: no marca a las cadenas , marca solo 2 cadenas ejmplo:_

Call dd("hola@3como@2andas@1")

solo va a marcar 2 colores no 3. y quedaria asi.   holacomoandas
y tendria que quedar asi : holacomoandas
podrian ayudarme ....