Färben einzelner Zeichen im Editorgadget
Verfasst: 08.12.2004 16:09
Hi zusammen,
ich habe im Codearchiv, die Proceduren:
in meinem Pogramm verwendet. Und zwar soll dort in einem Editorgadget einzelne Zeichen eingefärbt werden! Das funktioniert auch wunderbar, nur das Problem ist bei mehreren Zeilen läuft die Einfärbung von oben nach unten und scrollt dabei mit, was sehr ärgerlich ist, da ich ja beim Textbearbeiten im Editorgadget, die Textposition beibehalten möchte, also dort wo ich mich aktuell befinde!
Nun, weiss ich nicht mehr weiter, habe schon einiges probiert, und das Forum durchgesucht!
Gibt es noch andere Färbungsmöglichkeiten, oder Winapi-Befehle die ich
verwenden könnte?
Danke schonmal zum voraus!
ich habe im Codearchiv, die Proceduren:
Code: Alles auswählen
Procedure Editor_Select(Gadget, LineStart.l, CharStart.l, LineEnd.l, CharEnd.l)
sel.CHARRANGE
sel\cpMin = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, LineStart, 0) + CharStart - 1
If LineEnd = -1
LineEnd = SendMessage_(GadgetID(Gadget), #EM_GETLINECOUNT, 0, 0)-1
EndIf
sel\cpMax = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, LineEnd, 0)
If CharEnd = -1
sel\cpMax + SendMessage_(GadgetID(Gadget), #EM_LINELENGTH, sel\cpMax, 0)
Else
sel\cpMax + CharEnd - 1
EndIf
SendMessage_(GadgetID(Gadget), #EM_EXSETSEL, 0, @sel)
EndProcedure
; Set the Text color for the Selection
; in RGB format
Procedure Editor_Color(Gadget, Color.l)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_COLOR
format\crTextColor = Color
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure
; Set Format of the Selection. This can be a combination of
; the following values:
; #CFM_BOLD
; #CFM_ITALIC
; #CFM_UNDERLINE
; #CFM_STRIKEOUT
Procedure Editor_Format(Gadget, Flags.l)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_ITALIC|#CFM_BOLD|#CFM_STRIKEOUT|#CFM_UNDERLINE
format\dwEffects = Flags
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure
Nun, weiss ich nicht mehr weiter, habe schon einiges probiert, und das Forum durchgesucht!
Gibt es noch andere Färbungsmöglichkeiten, oder Winapi-Befehle die ich
verwenden könnte?
Danke schonmal zum voraus!