Textstelle in einer Textarea farblich hervorheben

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

 

qgock

Betreff: Textstelle in einer Textarea farblich hervorheben

BeitragMo, Mai 01, 2006 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

bin gerade auf ein Problem gestoßen. Ich mache gerade einen Script-Editor für ein Spiel und dort sollen die Befehle farblich hervorgehoben werden.
nun ja, ich hab in blitzplus keine funktion gefudnen für das.

Code: [AUSKLAPPEN]

Leng = TextAreaLen(txt,2); anzahl der linien
For i = 0 To leng-1
Line1$ = TextAreaText$(txt,i,1,2);1 Line aus lesen
For j = 0 To Len(line1); zeichen in der linie
For k = 1 To 10;die länge durch gehen
For l = 1 To 1 ; durchsuchen aller befehle
If Mid$(line1,j,k) = cs16(l) Then

der text in linie j ab position k soll l-Zeichen lang farblich werden.
formattextareatext funktioniert ncith mit zeilen UND position
Code: [AUSKLAPPEN]

EndIf
Next
Next
Next
Next

Dante

BeitragMo, Mai 01, 2006 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm ich würde es ungefähr so lösen^^

Code: [AUSKLAPPEN]
window = CreateWindow("Fenster",100,100,600,400,Desktop(),3)
textarea = CreateTextArea(0,0,ClientWidth(window),ClientHeight(window),window)

global max_commands = 4
Dim command$(max_commands)
command$(1) = "blitzbasic"
command$(2) = "miau"
command$(3) = "muh"
command$(4) = "wuff"

Repeat
If WaitEvent()=$803 Then End

txt$ = TextAreaText$(textarea)
For j = 0 To max_commands
For i = 0 To Len(txt$)
temp = Instr(Lower$(txt$),command$(j),i)
If temp Then
FormatTextAreaText textarea,255,0,0,8,temp-1,Len(command$(j))
End If
Next
Next

Forever


MfG Dante

Dante

BeitragMi, Mai 03, 2006 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal ein Beispiel wie man es mit Zeilen lösen kann ...

Code: [AUSKLAPPEN]
Global window = CreateWindow("ScriptEditor",100,100,600,400,Desktop(),1)
Global textarea = CreateTextArea(0,0,ClientWidth(window),ClientHeight(window),window)

Global max_commands = 4
Dim command$(max_commands)
command$(1) = "blitzbasic"
command$(2) = "miau"
command$(3) = "muh"
command$(4) = "wuff"

Repeat
tmp = WaitEvent(1)
If tmp = $803 Then End

cur_pos = TextAreaCursor(textarea,2)
code$ = TextAreaText$(textarea,cur_pos,1,2)

If code$ <> old_code$
colorizeCommands(code$,cur_pos)
old_code$ = code$
EndIf

Forever

Function colorizeCommands(txt$, pos)
;Text davor auslesen um genaue Position, des zu färbenden Waorts zu ermitteln
txt2$ = ""
For i = 0 To pos-1
txt2$ = txt2$ + TextAreaText$(textarea,i,1,2)
Next
letters = Len(txt2$) ;Buchstaben davor

txt$ = TextAreaText$(textarea,pos,1,2) ;Text der Aktuellen Zeile

For j = 0 To max_commands ;Text nach Befehl durchsuchen
For i = 0 To Len(txt$)
temp = Instr(Lower$(txt$),command$(j),i)
If temp Then
FormatTextAreaText textarea,0,0,255,8,temp + letters -1,Len(command$(j)) ;Anzehl der Buchstaben hinzufügen
End If
Next
Next
End Function

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group