wirklicher WYSIWYG-Editor arbeiten kann.
wenn man sich bissl einliest.
Code: Alles auswählen
#font = "Arial"
#fontsize = 14
Enumeration
#DEFAULT = 0
#BOLD = 1
#ITALIC = 4
#UNDERLINE = 8
EndEnumeration
Procedure SetStyle(style,font$,fontsize,fontcolor,flag)
ScintillaSendMessage(0,#SCI_STYLESETFONT, style, @font$)
ScintillaSendMessage(0,#SCI_STYLESETSIZE, style, fontsize)
ScintillaSendMessage(0,#SCI_STYLESETFORE ,style, fontcolor)
If flag&#BOLD
ScintillaSendMessage(0,#SCI_STYLESETBOLD ,style, 1)
EndIf
If flag&#ITALIC
ScintillaSendMessage(0,#SCI_STYLESETITALIC ,style, 1)
EndIf
If flag&#UNDERLINE
ScintillaSendMessage(0,#SCI_STYLESETUNDERLINE,style, 1)
EndIf
EndProcedure
Procedure InitStyles()
SetStyle(#DEFAULT ,#font,#fontsize ,RGB($00,$00,$00),#DEFAULT)
SetStyle(#BOLD ,#font,#fontsize ,RGB($FF,$00,$00),#BOLD)
SetStyle(#ITALIC ,#font,#fontsize-6,RGB($80,$80,$80),#ITALIC)
SetStyle(#UNDERLINE ,#font,#fontsize ,RGB($00,$00,$FF),#UNDERLINE)
SetStyle(#BOLD|#UNDERLINE ,#font,#fontsize ,RGB($00,$00,$00),#BOLD|#UNDERLINE)
SetStyle(#BOLD|#ITALIC ,#font,#fontsize ,RGB($00,$00,$00),#BOLD|#ITALIC)
SetStyle(#BOLD|#ITALIC|#UNDERLINE ,#font,#fontsize-4,RGB($00,$00,$00),#BOLD|#ITALIC|#UNDERLINE)
EndProcedure
Procedure StyleChars(start,length,style)
ScintillaSendMessage(0,#SCI_STARTSTYLING,start,255)
ScintillaSendMessage(0,#SCI_SETSTYLING,length,style)
EndProcedure
Procedure AddLine(text$)
text$+Chr(10)
len = Len(text$)
text2$=Space(len*4)
PokeS(@text2$,text$,len,#PB_UTF8) ; convert to UTF8
ScintillaSendMessage(0, #SCI_APPENDTEXT, MemoryStringLength(@text2$,#PB_UTF8), @text2$)
EndProcedure
If OpenWindow(0, 0, 0, 500, 300, "ScintillaGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If InitScintilla()
ScintillaGadget(0, 0, 0, 500, 300, #Null)
ScintillaSendMessage(0,#SCI_SETMARGINWIDTHN,1,0) ; margin
ScintillaSendMessage(0,#SCI_SETCODEPAGE,#SC_CP_UTF8,0) ; UTF8 mode
InitStyles()
AddLine("Hallo Kukulkan!")
AddLine("Das ist ein Scintilla-Gadget")
AddLine("mit Styles")
AddLine("")
AddLine("Ä Ö Ü ä ö ü ß")
StyleChars(0 ,15,#BOLD)
StyleChars(16,28,#ITALIC)
StyleChars(45,3 ,#UNDERLINE)
StyleChars(49,6 ,#BOLD|#UNDERLINE|#ITALIC)
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Bold, Italic, Underline, versch. Fonts und Fontgrößen gehen also
auf jeden Fall mit Scintilla.
EDIT: UTF8 bei Scintilla eingeschalten, geht nun auch mit Unicode.