Seite 1 von 1

Färben einzelner Zeichen im Editorgadget

Verfasst: 08.12.2004 16:09
von Criss
Hi zusammen,

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
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!

Verfasst: 08.12.2004 16:18
von orange-blue
du könntest die RichEditGadget benutzten, die Library dazu gibts auf pureare.net

Verfasst: 08.12.2004 16:27
von Andre
Relativ neu ist auch noch die SyntaxHighlighting UserLib (gedacht für das EditorGadget), gibts auch auf PureArea.net :D

Verfasst: 08.12.2004 18:28
von Criss
@orange-blue:

Super Idee, das mit der Richeditlibrary! Habe es gleich mal probiert, und es hat funktioniert! Hatte zuerst meine zweifel! Besten Dank!

Verfasst: 08.12.2004 18:30
von orange-blue
orange-blue hat geschrieben:du könntest die RichEditGadget benutzten, die Library dazu gibts auf pureare.net
Aja stimmt, hatte ich vergessen!
Besten Dank!
Immer wieder gerne :)

Verfasst: 08.12.2004 19:11
von DarkDragon
Andre hat geschrieben:Relativ neu ist auch noch die SyntaxHighlighting UserLib (gedacht für das EditorGadget), gibts auch auf PureArea.net :D
Jap, hab ich gemacht:
http://www.purearea.net/pb/showcase/sho ... =20&sort=1