Seite 1 von 2
TextGadget formatieren
Verfasst: 19.10.2013 21:27
von Ameisen23
Ich habe leider weder in der Hilfe noch im Forum was gefunden um ein TextGadget zu formatieren. Ich möchte gerne Teile des Textes formatieren. Unterstreichen oder farbisch einfärben usw.
Wie stelle ich das an? Muss ich viele einzelne TextGadgets nebeneinander erstellen oder muss ich WebGadget nutzen? Ich finde WebGadget keine gute Idee. WebGadget ist eigentlich dazu da um HTML Seiten anzuzeigen aber ich möchte bloß einen Text formatiert darstellen. Außerdem macht es bei WebGadget immer *klick* und das man rechtsklicken kann finde ich auch doof weil ein Internet Explorer Menü erscheint.
Und mein Program verbraucht deswegen deutlich mehr RAM. Jaja ich weiß man hat genug RAM und RAM ist billig. Aber ich finde WebGadget als TextGadget zu missbrauchen finde ich nicht so gut. Jemand eine Idee wie ich ein TextGadget formatieren kann?
Re: TextGadget formatieren
Verfasst: 19.10.2013 22:25
von Regenduft
EditorGadget() mit #PB_Editor_ReadOnly verwendet. Das unterstützt
Rich Text!
Re: TextGadget formatieren
Verfasst: 19.10.2013 22:35
von Ameisen23
Ach so wusste ich nicht dass EditorGadget Richedit unterstützt. Man muss zwar die ganzen RTF Formatierungscodes kennen
aber immerhin etwas. Gibt es hier bereits eine Liste der wichtigsten RTF Codes?
Was mich noch stört ist der Rahmen von EditorGadget und die Cursoränderung so als ob man reinschreiben könnte und es hat leider einen weißen Hintergrund.
Kann man die drei Sachen deaktivieren so dass es aussieht als ob es ein echter TextGadget ist?
Re: TextGadget formatieren
Verfasst: 19.10.2013 23:01
von RSBasic
Code: Alles auswählen
EnableExplicit
Define EventID
Define RTFString$
Procedure TextGadgetEx(Gadget, x, y, Width, Height, Text$, Flags = 0)
EditorGadget(Gadget, x, y, Width, Height, Flags)
DisableGadget(Gadget, 1)
SetWindowTheme_(GadgetID(Gadget), @"", @"")
SetWindowLongPtr_(GadgetID(Gadget), #GWL_EXSTYLE, 0)
SendMessage_(GadgetID(Gadget), #EM_SHOWSCROLLBAR, #SB_HORZ, #False)
SendMessage_(GadgetID(Gadget), #EM_SHOWSCROLLBAR, #SB_VERT, #False)
SetWindowPos_(GadgetID(Gadget), 0, 0, 0, 0, 0, #SWP_NOMOVE | #SWP_NOSIZE | #SWP_FRAMECHANGED)
SetGadgetColor(Gadget, #PB_Gadget_FrontColor, RGB(0, 0, 0))
SetGadgetText(Gadget, Text$)
EndProcedure
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
RTFString$ + "{\rtf1"
RTFString$ + "Hallo Welt!"
RTFString$ + "\par"
RTFString$ + "{\i Dies} ist ein "
RTFString$ + "formatierter {\b Text}."
RTFString$ + "\par"
RTFString$ + "{\colortbl;\red0\green0\blue0;\red255\green0\blue0;}"
RTFString$ + "\cf2 Farbiger Text"
RTFString$ + "}"
TextGadgetEx(1, 10, 10, WindowWidth(0)-20, 50, RTFString$)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Re: TextGadget formatieren
Verfasst: 19.10.2013 23:20
von Ameisen23

Klasse danke für den Code! Ich werde mich mit rtf beschäftigen und dann kann ich mit deinem Code meine eigenen TextGadgets erstellen.

Re: TextGadget formatieren
Verfasst: 11.08.2014 09:31
von Goold
Bei mir funktioniert der Code nun auch, nachdem ich keine Unicode-Executables mehr erstellen lasse.
Gibt es einen Tip, wie man die Hintergrundfarbe anpassen kann?
SetGadgetColor(Gadget, #PB_Gadget_BackColor, RGB(x, x, x)) funktioniert leider nicht, wäre ja auch zu einfach gewesen.
Re: TextGadget formatieren
Verfasst: 11.08.2014 09:47
von Derren
Geht doch?
Code: Alles auswählen
OpenWindow(0, 0, 0, 400, 300, "EditorGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
EditorGadget(0, 0, 0, 400, 300, #PB_Editor_ReadOnly)
SetGadgetColor(0,#PB_Gadget_BackColor,RGB(Random(255), Random(255), Random(255)))
AddGadgetItem(0, -1, "Hallo Welt")
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
Re: TextGadget formatieren
Verfasst: 11.08.2014 09:49
von Kiffi
Derren hat geschrieben:Geht doch?
Goold meint bestimmt das TextGadgetEx() von oben.
Grüße ... Kiffi
Re: TextGadget formatieren
Verfasst: 11.08.2014 09:52
von RSBasic
Da es sich um RTF-Formatierung handelt, musst du nach RTF-Spezifikationen suchen oder du erstellst in WordPad ein RTF-Dokument und schaust im Quellcode, wie der Code für deine gewünschte Formatierung lautet. Soweit ich weiß fängt es mit "{\background" an und in diesem Block kannst du die Farbe festlegen.
Verfasst: 11.08.2014 09:58
von CodeCommander
Derren hat geschrieben:Geht doch?
Wer lesen kann ist klar im vorteil
