Am 31.01.2005 um 12:27 schrieb Schneppmueller, Sascha:
Moin,
ich versuche einen Editor mit Syntax Highlighting für eine
Skriptsprache zu entwickeln.
Während ein User das Skript schreibt sollen vom Programm
erkannte Schlüsselwörter in einer anderen Farbe dargestellt werden.
Ich komme einfach nicht vorran.
Hat denn wirklich niemand eine Idee
PS: Es soll primaer eine Win32 Anwendung werden...
Vielen Dank für jede Hilfe.
Gruss Schneppi
Mahlzeit,
Versuch mal das hier (bin mir nicht ganz sicher, ob Du das hier genau
das ist, was Du brauchst:
1. Erzeuge ein global zugängliches Dictionary myDict (oder so)
2. Im Open-Event des Windows (oder Editfields):
myDict = new Dictionary
myDict.value("Test")=1
myDict.Value("Highlight")=1
usw,
3. Im TextChange-Event des Editfields:
dim aText,aChar,Separators as string
dim position as integer
Separators=chr(9)+chr(10)+chr(13)+chr(32)+",.:;""!?-–" // Passendes
ergaenzen
if me.Styled then
// Das Wort, an dem gerade geschrieben wird, ermitteln
position=me.SelStart+1
aChar=mid(me.text,me.SelStart+1,1)
while (instr(Separators,aChar)=0) and (position>0)
aText=aChar+aText
position=position-1
aChar=mid(me.text,position,1)
wend
// Gucken, ob das Wort ein Highlightwort ist
if myDict.HasKey(aText) then
me.StyledText.TextColor(position,me.SelStart-position)=rgb(255,0,0)
else
me.StyledText.TextColor(position,me.SelStart-position)=rgb(0,0,0)
end if
end if
Beim Schreiben sollten jetzt die Worte Test und Highlight rot markiert
werden. Wenn man allerdings Testphase schreibt, wird es wieder schwarz.
Hoffe, dass hilft ein wenig. Habe es allerdings nicht auf
"Seiteneffekte" geprüft.
Gruß
Torsten
|