Oppure

Loading
07/10/07 16:35
albertking82
Ciao a tutti!Io vorrei realizzare tramite una richtextbox un editor che mi colori le parole chiavi di un linguaggio di programmazione.La cosa difficile è che non riesco a simulare la selezione di un testo tramite codice in modo tale da settare poi la proprietà selcolor=rosso.

es.
private cmdupdate_click()
richtextbox.selcolor=vbred
end sub

Mi potete dare una dritta?
__________________________________________________
If exist("god";) printf("Programming";);
aaa
07/10/07 18:41
antometal
usa questo codice

Private Sub ColoraParola(Parola As String, Colore As Long)
Dim i As Integer
For i = 1 To Len(ri) - Len(Parola)
rich.SelStart = i
ri.SelLength = Len(Parola)
If rich.SelText = Parola Then rich.SelColor = vbRed
Next i
End Sub

mettilo nell' evento change
aaa
07/10/07 18:44
antometal
un piccolo errore

Private Sub ColoraParola(Parola As String, Colore As Long)
Dim i As Integer
For i = 1 To Len(ri) - Len(Parola)
ri.SelStart = i
ri.SelLength = Len(Parola)
If ri.SelText = Parola Then ri.SelColor =colore
Next i
End Sub

adesso va bene
ho fatto delle prove e se lo metti nel change rallenta un po
aaa
07/10/07 19:04
albertking82
Io lo sto provando ma nn mi funziona.
aaa
07/10/07 19:22
albertking82
Ora mi funziona mettendo sul ciclo for l'indice a 0
però codi colora anche le parti di stringhe che contengono la parola ad esempio se voglio che colori "if" lui mi colora anche la stringa "rifare" con r=colore nero if=colore rosso e are=colore nero
aaa
08/10/07 3:16
albertking82
Antonmetal mi potresti postare il tuo codice completo e non solo la procedura perchè a me non funziona e vorrei capire in cosa sbaglio.Ti rigrazio anticipamente.
aaa
08/10/07 12:22
P4p3r0g4
devi controllare che la parola non sia all'interno di un'altra ovvero che il carattere precedente e successiovo sia "acapo" (se non sbaglio chr(10) e Chr(13)) o spazio " "
aaa
08/10/07 14:55
antometal
Private Sub ColoraParola(Parola As String, Colore As Long)
Dim I As Integer
For I = 1 To Len(Rich) - Len(Parola)
Rich.SelStart = I
Rich.SelLength = Len(Parola)
If Rich.SelText = Parola Then Rich.SelColor = Colore
Next I
End Sub

Private Sub Command2_click()
ColoraParola "if", vbGreen
End Sub

io uso questo codice e mi funziona bene mi colora solo if e nn da errori (anche se una volta mi ha colorato lettre che nn doveva, ma la volta successiva lavorava come deve. nn so xk)
aaa