Le but étant de colorer du premier caractère de la 2eme ligne au 5e caracatère de la 3eme ligne.
Mais il me colorie tout !
Code : Tout sélectionner
ProcedureDLL Editor_ColorTest(Gadget,ydeb,xdeb,yfin,xfin,Color)
; Set the Text color for the Selection
; in RGB format
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_COLOR
format\crTextColor = Color
sel.CHARRANGE
sel\cpMin = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, ydeb, 0) + xdeb - 1
If yfin = -1
yfin = SendMessage_(GadgetID(Gadget), #EM_GETLINECOUNT, 0, 0)-1
EndIf
sel\cpMax =SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, yfin, 0)
If xfin = -1
sel\cpMax + SendMessage_(GadgetID(Gadget), #EM_LINELENGTH, sel\cpMax, 0)
Else
sel\cpMax + xfin - 1
EndIf
Debug sel\cpMin
Debug sel\cpMax
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, sel,format)
EndProcedure
If OpenWindow(0,0,0,800,600,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"EditorGadget") And CreateGadgetList(WindowID(0))
EditorGadget (30,8,8,400,500,#PB_Container_Raised)
Editor_Font(30,"Comic Sans MS")
Editor_FontSize(30,16)
For a=0 To 5
AddGadgetItem(30,a,"Line "+Str(a))
Next
Editor_Format(30,0)
ButtonGadget(2,610,10,150,50,"Changer la Couleur du Texte",#PB_Button_MultiLine)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID()
Case 2
rgb=RGB(Random(255),Random(255),Random(255))
Editor_ColorTest(30,1,1,2,5,rgb)
SetGadgetText(2,"Texte (RGB) : "+Str(Red(rgb))+","+Str(Green(rgb))+","+Str(Blue(rgb)))
EndSelect
EndIf
Until EventID=#PB_Event_CloseWindow
End
EndIf