Seite 1 von 1

Eingabe Farbe ändern (mehrfach)

Verfasst: 09.09.2005 18:48
von LeoS#PUpDock
Kann man in einem StringGadget (oder anderem) die Farbe ändern und wenn wie?

Am besten merfach ändern, so das in einem StringGadget z.B. ein bestimmtes Wort Grün und ein bestimmtes Wort Blau und dick gekennzeichnet wird.

Gibt es da möglichkeiten? Könnte man das mit einem Programmiertext regeln?

Verfasst: 01.10.2005 14:10
von AND51
nein, das geht nicht.
du solltest den textgadget mal mit
"SetGadgetFont" und "LoadFont" modifizieren. schau mal in der hilfe. mit dieser methode kannst du sogar den etxt im textgadget unterstrichen machen oder fett oder kkursiv (oder alles zusammen).
oder nimm statt eines textgadgets einfach ein hyperlinkgadget.
da kannst du als letzten parameter angeben, welche farbe der text haben soll, wenn man mit der maus darüber fährt.

mehr möglichkeiten weiß ich nicht, außer noch die eine, dass du in einem OpenWindow-fenster (das wolltest du doch, oder) mit StartDrawing() rumwerkelst, da kannst du tatsächlich besser die farbe wechseln, diese methode ist übrigens nicht so aufwendig wie die anderen methoden, die ich dir genannt habe.

ich hoffe ich konnte dir helfen, ansonsten poste hier nochmal, AND51

(sry für die rechtschreibfehler, aber ich bin meistens sehr faul so längere texte ordnungsgemäß zu schreiben)

Verfasst: 01.10.2005 14:29
von Hroudtwolf
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

Verfasst: 01.10.2005 14:30
von ts-soft
Hierfür ist ein EditorGadget geeigneter, also für verschiedenen Farben in einer Zeile. Du kannst zur Umsetzung zum Beispiel die hervorragende AVEditor Lib von A.Miethe verwenden oder für sowas wie Syntaxhighlightning die Syntaxhighlightning Lib von DarkDragon. Findeste alles auf PureArea.net.

Verfasst: 01.10.2005 14:32
von AND51
Wow, dagegen sieht meine Hilfe ja alt aus :oops: :wink:
Aber akzeptabel ist sie doch oder?

Verfasst: 01.10.2005 20:14
von Falko
Ich habe jetzt nicht diesen ganzen Thread durchgelesen.
Entschuldige dann bitte, wenn hier nichts zutrifft. Aber Schau mal hier im
folgenden Link.

http://forums.purebasic.com/german/view ... text+color

Hier ist bestimmt sowas ähnliches dabei.

MfG Falko