Jeg har en RichtextBox og vil lave syntax farvning.
jeg har for så vidt også noget der virker , men den skriver alt på samme linje
<pre>
If ord = "<help>" Then
rtb1.SelStart = i - Len(ord)
rtb1.SelLength = Len(ord)
rtb1.SelColor = &HFF00&
rtb1.SelText = ord
rtb1.SelColor = Default_Color
end if
</pre>
Hvordan kan jeg omskrive dette eller lave en anden kode
der tager højde for mellerum og linieksift osv.
mvh.
Thomas Christensen
-------------------------------------------------------
Visual Basic noget for dig?
tjek Visual Basic-Gruppen
http://www.udvikleren.dk/groups/?gid=41
Jens
dim tmp as string 'sættes i efter option explicit
If ord = "<help>" Then 'rtb1.SelStart = i - Len(ord)
rtb1.SelLength = Len(ord)
rtb1.SelColor = &HFF00&
rtb1.SelText = ord & vbCr ' "ny linie"
rtb1.SelColor = Default_Color
If ord = "<help>" Then goto afslut:
ElseIf ord = "<html>" Then
rtb1.SelStart = i - Len(ord)
rtb1.SelLength = Len(ord) '+ (i - 1)
rtb1.SelColor = RGB(0, 0, 255)
rtb1.SelText = ord
rtb1.SelColor = Default_Color
tjek = 5000
ElseIf ord = "<html>" Then goto afslut:
if tmp = "<help>" then rtb1,vbCr ' "ny linie"
----------------------------------------
Else
text = text & ord
End If
håber det hjælper hvis du kommer forbi ( end if )
Jeg kan ikke rigtigt fordet til at virke.
jeg har prøvet dette
<pre>
If ord = "<help>" Then 'rtb1.SelStart = i - Len(ord)
rtb1.SelLength = Len(ord)
rtb1.SelColor = &HFF00&
rtb1.SelText = ord & vbCr ' "ny linie"
rtb1.SelColor = Default_Color
If ord = "<help>" Then goto afslut:
ElseIf ord = "<html>" Then
rtb1.SelStart = i - Len(ord)
rtb1.SelLength = Len(ord) '+ (i - 1)
rtb1.SelColor = RGB(0, 0, 255)
rtb1.SelText = ord
rtb1.SelColor = Default_Color
tjek = 5000
ElseIf ord = "<html>" Then goto afslut:
if tmp = "<help>" then rtb1,vbCr ' "ny linie"
----------------------------------------
Else
text = text & ord
</pre>
det virkede ikek så prøve jeg dette
<pre>
If ord = "<help>" Then
GoTo afslut:
ElseIf ord = "<html>" Then
GoTo afslut:
If tmp = "<help>" Then
rtb1 , vbCr ' "ny linie"
'----------------------------------------
Else
text = text & ord
End If
End If
</pre>
jeg kan ikke rigtigt finde ud hvor du vil have jeg skal placere det
desuden siger den om flg. lnnie
<pre>
rtb1. , vbCr ' "ny linie"
</pr>
Invalid Use of property.
jeg ahr også prøvet en ande kode
<pre>
Private Sub RTB1_KeyPress(KeyAscii As Integer)
If Syntax(RTB1.Text) = 5000 Then
KeyAscii = 0
End If
End Sub
</pre>
funktion Syntax
<pre>
Function Syntax(Word As String) As Integer
Ord = InStr(1, LCase$(Form1.RTB1.Text), "input()")
If Ord <> 0 Then
start = Ord - 1
slut = Len("input()") - 1
Form1.RTB1.SelStart = Ord - 1
Form1.RTB1.SelLength = Len(Ord)
Form1.RTB1.SelColor = Commando_Color
Form1.RTB1.SelText = UCase$("input()")
Form1.RTB1.SelText = Left(Form1.RTB1.Text, Form1.RTB1.SelStart) & Ord & Mid(Form1.RTB1.Text, Form1.RTB1.SelStart + Form1.RTB1.SelLength + 1)
Form1.RTB1.SelColor = Default_Color
End Function
</pre>
Men den virker ikke rigtigt, den skrive det kommandoe i gen og igen.
Så hvordan kan jeg skrive en af disse to koder om, så de virker og tag højde for mellerum eller lave en trejide der virker?
-Thomas
-------------------------------------------------------
Visual Basic noget for dig?
tjek Visual Basic-Gruppen
http://www.udvikleren.dk/groups/?gid=41