Textstelle in einer Textarea farblich hervorheben
Übersicht

qgockBetreff: Textstelle in einer Textarea farblich hervorheben |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group