Zum Fären von Gadgetinhalten kann dir dieser Code zum Verständniss helfen.
Das mit den einzelnen Buchstaben Färben geht auch ist aber sehr kompliziert.
Ich hab das glaube ich schonmal in Freds PureBasic Forum gesehen.
Einen Tip geben kann ich dir aber schonmal....
Nimm ein Stringgadget ohne Rahmen und auf Readonly gesetzt.
Du könntest dan den Fontstyle Buchstabenweise per Sendmessage ändern. (Siehe Code 2)
(code 1)
Code: Alles auswählen
; English forum: http://purebasic.myforums.net/viewtopic.php?t=8181&highlight=
; Author: Berikco
; Date: 04. November 2003
OpenWindow(0,100,150,400,400,#PB_Window_SystemMenu,"TEST")
Global Yellow, Green, blauw
Yellow = CreateSolidBrush_($66E8FB)
Green = CreateSolidBrush_($7BDF84)
blauw=CreateSolidBrush_($E5B91A)
Procedure myCallback(WindowID, Message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Select Message
Case #WM_CTLCOLORSTATIC
Select lparam
Case GadgetID(1)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam, $FFFFFF)
Result = Yellow
Case GadgetID(4)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam, $FFFFFF)
Result = blauw
EndSelect
Case #WM_CTLCOLOREDIT
Select lparam
Case GadgetID(3)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam, $FFFFFF)
Result = green
EndSelect
EndSelect
ProcedureReturn Result
EndProcedure
SetWindowCallback(@myCallback())
CreateGadgetList(WindowID())
TextGadget(1,10,10,100,15,"Hoegaarden",#PB_Text_Center)
TextGadget(2,120,10,100,15,"Jupiler",#PB_Text_Center)
StringGadget(3, 10, 40, 200, 40, "Goedendag allemaal, voor mij een pintje" , #PB_String_Multiline)
CheckBoxGadget(4, 10, 90,100, 20, "Beer Here")
Repeat
Until WaitWindowEvent() = #PB_EventCloseWindow
; ExecutableFormat=Windows
; EnableXP
; EOF
(Code 2)
Code: Alles auswählen
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
Beispiel zu Code 2: (ungetestet)
Code: Alles auswählen
String.s="Die ist ein Test"
For x=1 To Len(String.s)
Editor_Color(#deineditorgadget, rgb(100+random(155),100+random(155),100+random(155))) SendMessage_(GadgetID(#deineditorgadget),#EM_REPLACESEL,0,mid(String.s,x,1))
next x