Oppure

Loading
12/04/08 16:04
Thejsuter
Salve a tutti

Avrei un piccolo problemino che non riesco a capire
come risolvero spero che qualcuno puo aiutarmi
a farlo funzionare

Si tratta di un Higlight

Presente quando premete il pulsante a sinistra code
e vi colora gli IF le stringe ecc. ecc.

Siccome sto realizzando un Compilatore su vb.net

e indispensabile questa fuzione ho provato in questo modo


script = RichTextbox.text

try

  Script.find("if")
script.selectionColor = Color.blue


catch
end try




Ma l'istrunzione non lavora.

Appena dopo il primo carattere che si scrive
comincia a colorare tutto il testo di blu senza fermarsi

Potete aiutarmi? Grazie mille.
aaa
12/04/08 18:36
Dark_Limit
Ciao...Hai provato con un Focus sulla parte che hai selezionato?
aaa
12/04/08 22:49
Thejsuter
Sinceramente no,

Per caso non potresti illustrarmi anche un piccolo suggerimento su come fare?

Te ne sarei molto grato

thx in anticipo
aaa
13/04/08 7:04
Il Totem
Puoi trovare diversi modi di highlitghting sul mio sito:
totem.altervista.org/guida/versione2/…
(Questo era per html...)
E anche qua ci sono dei codici, ad esempio il mio programma Code Converter (che puoi trovare nella sezione sorgenti vb.net) colora i sorgenti e li trasforma in file "di testo" elaborati (rtf, html, html+css). Puoi vedere il codice che serve a colorare e usarlo su una riga alla volta: è quasi impeccabile (usa le espressioni regolari).
E poi un buon codice che avevo trovato e riadattato, questa è la forma originale:
pietschsoft.com/Blog/…
aaa
13/04/08 14:55
Thejsuter
Ciao totem complimenti per i tuoi lavori
veramente ben fatti

Tornando al Higlight

credo di aver capito qualcosa

ma ho solo un problema in questa espressione

For Each Word As String In *Words*
            I = FirstCharIndex
            Do
                I = Me.Find(Word, I, I + Me.Lines(LineIndex).Length, _
                    RichTextBoxFinds.None)
                If I >= 0 Then
                    Me.SelectionStart = I
                    Me.SelectionLength = Word.Length
                    'Qui utilizo un dictionary
                    Me.SelectionColor = Words(Word)
                    I += Word.Length
                End If
            Loop While I >= 0
        Next



e un errore del tipo qui

For Each Word As String In *Words*
Fa un refierimento ad un membro non condiviso
Richiede un riferimento a un oggetto

Prima mi dava un errore che il membro Words non era disponibile perche era Private.

Lo modificiato il Public

e mi da quest'errore adesso

e risolvibile?

PS:
Nei source non ho trovato un programma tipo
rtb che abbia un higlight interno altrimenti non disturbavo 8-|
Ultima modifica effettuata da Thejsuter 13/04/08 15:00
aaa
13/04/08 16:08
Thejsuter
Scusate il doppio post ma ho fatto una cosa del genere


  Dim cerca = "if"
        If LastValidIndex < script.TextLength - 1 Then
            Dim Index = script.Find("if", LastValidIndex + 1, RichTextBoxFinds.None)
            If Index > -1 Then
                LastValidIndex = Index
                script.Select(Index, cerca.Length)
                script.SelectionColor = Color.Blue








            Else

            End If
        Else





C'e solo un problema qui
dovre fare in modo che il cursore si riposizioni alla fine di quella righa come e possibile farlo?
Ultima modifica effettuata da Thejsuter 13/04/08 16:10
aaa