vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Syntax-Highlighting zu langsam 
Autor: NeoInferno
Datum: 22.01.03 16:24

Hi,
meine aktuelle SHL-Methode für meinen HTML-Editor ist einfach zu langsam.
bei längeren Texten sieht man, wie der Text "gelesen" wird und automatisch scrollt.

Auch wenn ich die Form kurzzeitig verstecke bringt es nichts...es sieht sogar noch schlechter aus.

Hat jemand eine Idee, wie ich den Vorgang beschleunigen kann?
Es würde evtl. auch etwas bringen, den Vorgang nur vor dem User zu verbergen, damit er in Ruhe weiter arbeiten kann.

Hier mein aktueller Code:
Public Sub HTMLHighlight(rtfBox As RichTextBox)
'// SHL für HTML Editor
Dim sPos As Long
Dim ePos As Long
Dim curpos As Long
 
curpos = rtfBox.SelStart
 
With rtfBox
 
    '// Normale Tags
    sPos = 0
    Do
        sPos = .Find("<", sPos + 1)
        If sPos > 0 Then
            ePos = .Find(">", sPos + 1)
            If ePos > 0 Then
                .SelStart = sPos
                .SelLength = ePos - sPos + 1
                .SelColor = cTags
                sPos = ePos
            End If
        End If
    Loop Until sPos < 1
 
    '// Grafiken
    sPos = 0
    Do
        sPos = .Find("<img", sPos + 1)
        If sPos > 0 Then
            ePos = .Find(">", sPos + 1)
            If ePos > 0 Then
                .SelStart = sPos
                .SelLength = ePos - sPos + 1
                .SelColor = cImage
                sPos = ePos + 4
            End If
        End If
    Loop Until sPos < 1
 
    '// Links
    sPos = 0
    Do
        sPos = .Find("<a href", sPos + 1)
        If sPos > 0 Then
            ePos = .Find(">", sPos + 1)
            If ePos > 0 Then
                .SelStart = sPos
                .SelLength = ePos - sPos + 1
                .SelColor = cLink
                sPos = ePos + 7
            End If
        End If
    Loop Until sPos < 1
    HTMLTag rtfBox, "</a>", cLink
 
    '// Tabellen
    sPos = 0
    Do
        sPos = .Find("<table", sPos + 1)
        If sPos > 0 Then
            ePos = .Find(">", sPos + 1)
            If ePos > 0 Then
                .SelStart = sPos
                .SelLength = ePos - sPos + 1
                .SelColor = cTable
                sPos = ePos + 6
            End If
        End If
    Loop Until sPos < 1
    HTMLTag rtfBox, "<td>", cTable
    HTMLTag rtfBox, "</td>", cTable
    HTMLTag rtfBox, "<tr>", cTable
    HTMLTag rtfBox, "</tr>", cTable
    HTMLTag rtfBox, "</table>", cTable
 
    '// Kommentar
    sPos = 0
    Do
        sPos = .Find("<!--", sPos + 1)
        If sPos > 0 Then
            ePos = .Find("-->", sPos + 1)
            If ePos > 0 Then
                .SelStart = sPos
                .SelLength = ePos - sPos + 1
                .SelColor = cComment
                sPos = ePos + 4
            End If
        End If
    Loop Until sPos < 1
 
    '// Skript
    sPos = 0
    Do
        sPos = .Find("<script", sPos + 1)
        If sPos > 0 Then
            ePos = .Find(">", sPos + 1)
            If ePos > 0 Then
                .SelStart = sPos
                .SelLength = ePos - sPos + 1
                .SelColor = cScript
                sPos = ePos + 7
            End If
        End If
    Loop Until sPos < 1
    HTMLTag rtfBox, "</script>", cScript
 
    '// Farbcodes
    sPos = 0
    Do
        sPos = .Find("#", sPos + 1)
        If sPos > 0 Then
            ePos = .Find(ST, sPos + 1)
            If ePos > 0 Then
                .SelStart = sPos
                .SelLength = ePos - sPos
                    'Keine zu langen Codes
                    If .SelLength > 7 Then .SelLength = 7
                .SelColor = cColors
                sPos = ePos + 1
            End If
        End If
    Loop Until sPos < 1
 
    'Alte Cursorposition und Farbe
    .SelStart = curpos
    .SelColor = cText
End With
 
End Sub
Etwas lang, aber bei den vielen verschiedenen Tags muss es sein.

greez,Neo
0
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Syntax-Highlighting zu langsam390NeoInferno22.01.03 16:24
Re: Syntax-Highlighting zu langsam233NeoInferno22.01.03 16:38
Re: Syntax-Highlighting zu langsam235illuminator22.01.03 18:48
Re: Syntax-Highlighting zu langsam215NeoInferno22.01.03 21:06
Re: Syntax-Highlighting zu langsam236illuminator22.01.03 22:00

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel