Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - highliting syntax
Forum - Visual Basic 6 - highliting syntax

Avatar
albertking82 (Member)
Pro


Messaggi: 112
Iscritto: 14/08/2006

Segnala al moderatore
Postato alle 18:35
Domenica, 07/10/2007
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");

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 20:41
Domenica, 07/10/2007
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

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 20:44
Domenica, 07/10/2007
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

PM Quote
Avatar
albertking82 (Member)
Pro


Messaggi: 112
Iscritto: 14/08/2006

Segnala al moderatore
Postato alle 21:04
Domenica, 07/10/2007
Io lo sto provando ma nn mi funziona.

PM Quote
Avatar
albertking82 (Member)
Pro


Messaggi: 112
Iscritto: 14/08/2006

Segnala al moderatore
Postato alle 21:22
Domenica, 07/10/2007
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

PM Quote
Avatar
albertking82 (Member)
Pro


Messaggi: 112
Iscritto: 14/08/2006

Segnala al moderatore
Postato alle 5:16
Lunedì, 08/10/2007
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.

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 14:22
Lunedì, 08/10/2007
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 " "

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 16:55
Lunedì, 08/10/2007
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)

PM Quote
Avatar
albertking82 (Member)
Pro


Messaggi: 112
Iscritto: 14/08/2006

Segnala al moderatore
Postato alle 19:39
Lunedì, 08/10/2007
Antonmetal ti ringrazio molto per l'aiuto!Se hai msn messenger mi piacerebbe parlare di Visual Basic con te il mio msn lo puoi vedere sul mio profilo:Ciao e grazie ancora.

PM Quote