Seite 2 von 2

Verfasst: 14.04.2008 14:47
von Scarabol
Hi,

am besten nimmst du das Scintilla Gadget und suchst hier mal nach Syntax Highlighting...

Gruß
Scarabol

Verfasst: 14.04.2008 15:13
von Fluid Byte
Du machst 'nen Editor mit'm TextGadget? :shock:

Verfasst: 14.04.2008 15:21
von Kiffi
k.o.e.i.g2 hat geschrieben:brauch es aber weil es ein editor werden soll da kann ichs net auf ein bild doer webgagdet oder sowas machen o.O unlogisch dat schon vorzuschlagen...
:freak: Die Überlegungen von Kaeru Gaman sind völlig korrekt und nicht
im geringsten unlogisch. Das einzig unlogische sind momentan Deine
Anfragen. Ursprünglich hast Du nach einem TextGadget() gefragt.
Jetzt auf einmal soll's ein Editor werden.

Ich würde empfehlen, dass Du Dir mal in Ruhe die PB-Hilfe zu Gemüte
führst und die 'Fachbegriffe' lernst (zumindest den Unterschied zwischen
TextGadget() und StringGadget() (bzw. EditorGadget())), bevor Du das
nächste mal ein Posting absetzt.

Und noch was: Ab und zu einen Punkt oder ein Komma zu setzen tut nicht
weh!

Um zum eigentlichen Thema "Farbische (!sic) texte in textgadget?"
zurückzukommen (oversized version):

Code: Alles auswählen

HTMLTemplate.s = "<html><body scroll='no' leftmargin='5' topmargin='0' marginwidth='0' marginheight='0'>#TEXT#</body></html>"

OpenWindow(0, #PB_Ignore, #PB_Ignore, 250, 120, "", #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_Invisible)
CreateGadgetList(WindowID(0))

WebGadget(0, 5, 5, 80, 20, "")
Text.s = ReplaceString(HTMLTemplate, "#TEXT#", "<font color='red'>Pure</font><font color='green'>Ba</font><font color='blue'>sic:</font>")
SetGadgetItemText(0, #PB_Web_HtmlCode, Text)

StringGadget(1, 90, 5, 120, 20, "Feel the pure power!")

While WindowEvent() : Delay(1) : Wend

HideWindow(0, #False)

Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
Grüße ... Kiffi

Verfasst: 14.04.2008 15:32
von Kaeru Gaman
k.o.e.i.g2 hat geschrieben:brauch es aber weil es ein editor werden soll da kann ichs net auf ein bild doer webgagdet oder sowas machen o.O unlogisch dat schon vorzuschlagen...
des is ja auchn Handkäs, dass ich das riechen kann was du machen willst.
weiste, wenn man in nem forum fragen stellt, dann erklärt man auch was dazu,
damit die anderen wissen, worauf man hinaus will.
und auf jeden fall bleibt man freundlich.

Verfasst: 14.04.2008 15:46
von scholly
Kiffi hat geschrieben:Farbische (!sic) texte in textgadget?
Aber Kiffi... tststs... Du bist doch Vater.
Liest Du deine(m|n|r) lütten keine Kindergeschichten mehr vor?

[ducken]
Farbisch ist die Sprache der Farbwesen vom Planeten Indigo, dem Traumplanet der Farbforscher, wie man hier problemlos recherchieren kann.
Vielleicht war/ist k.o.e.i.g2 ja auf der "Kinder Uni im Netz" :lol:
[/ducken]

SCNR...

Verfasst: 14.04.2008 17:11
von Fluid Byte
Schönes Seitendesign ... Bild

Verfasst: 15.04.2008 10:18
von Falko
Wenn es auch was Älteres tut, was die API benutzt, vorausgesetzt du hast keine Demo, probiere dieses mal aus. Ich habe den alten Source mal an
PB4 angepasst :lol:

Hier der Link aus der Forumssuche:
http://www.purebasic.fr/german/viewtopi ... =5908#5908

Und hier etwas aktualisiert nach PB4 mit API:

Code: Alles auswählen

;Selektierte Buchstaben ersetzen bzw. färben.
;Codeschnipsel written by Falko
;Angepasst nach PB4 (14.4.2008
String$="Mein Test"
Buffer$=Space(255)
Global hdc
Global mychar.CHARFORMAT

  ;
  ;Ermittle die Anzahl Buchstaben der obrigen Zeile
  ;
  Procedure.l GetCursorPos(YPos.l)
   Result = SendMessage_(hdc,#EM_LINEINDEX,YPos,0)
   ProcedureReturn Result
  EndProcedure
 ;
 ; Farbe und Fontattribute setzen
  Procedure SetCharFormat(Mask.l,Effects.l,Font.s,Color.l)
     ;mychar.CHARFORMAT ; Sollte vorher als global deklariert werden.
     mychar\cbSize=SizeOf(CHARFORMAT)
     mychar\dwMask=Mask;#CFM_BOLD|#CFM_COLOR ; Fettschrift und Color setzen 
     mychar\dwEffects=Effects
     mychar\yHeight=500
     mychar\crTextColor=Color
     mychar\bCharSet=0
     PokeS(@mychar\szFaceName, Font)
     EndProcedure
 
 
  If OpenWindow(0,0,0,322,275,"StringGadget Flags",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
     hdc.l=EditorGadget (0,8,8,485,385)
     AddGadgetItem(0,0,"Wie wäre es mit dieser Zeile, die wir ändern wollen.")
     AddGadgetItem(0,1,"Wie wäre es mit dieser Zeile, die wir ändern wollen.")   
     AddGadgetItem(0,2,"Wie wäre es mit dieser Zeile, die wir ändern wollen.")
     ;
     ;In dieser Zeile ein Teilstring, Farbe und Fontattribut verändern
     ;
     Char=GetCursorPos(1)
     SendMessage_(hdc,#EM_SETSEL,Char+16,Char+28); markiere Textteil, der geändert werden soll
     SetCharFormat(#CFM_BOLD|#CFM_COLOR,1,"Arial",$0000FF);Farbe auswählen
     SendMessage_(hdc,#EM_SETCHARFORMAT,#SCF_SELECTION,mychar); Setzen der Attribute auf selection
     SendMessage_(hdc,#EM_REPLACESEL,0,String$); Ersetze diesen Teil durch den String$
     ;
     ;Textteil Markieren und durch nur Farbe Blau und Fontattribute ersetzen
     ;
     
     Char=GetCursorPos(2)
     SendMessage_(hdc,#EM_SETSEL,Char+8,Char+8+8); markiere Textteil, der gefärbt werden soll
     SetCharFormat(#CFM_FACE | #CFM_SIZE | #CFM_COLOR,1,"Symbol",$FF0000)
     SendMessage_(hdc,#EM_SETCHARFORMAT,#SCF_SELECTION,mychar);Char-Attribute setzen
     SendMessage_(hdc,#EM_GETSELTEXT,0,Buffer$); kopiere Selektieren Text in den Buffer 
     SendMessage_(hdc,#EM_REPLACESEL,0,Buffer$); ersetze Text dann aus dem Buffer mit den Attributen
   
   
    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
  EndIf
Gruß Falko