Code: Select all
#PFM_ALL2 = $0fffdff
Procedure RangeFormat(Gadget,SLIndex,ELIndex,InFlag,BFlag,SpFlag,Align)
sel.CHARRANGE
sel\cpMin = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX,SLIndex, 0)
sel\cpMax = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX,ELIndex, 0)
SendMessage_(GadgetID(Gadget), #EM_EXSETSEL, 0, @sel)
para.PARAFORMAT2
para\cbSize = SizeOf(PARAFORMAT2)
para\dwMask = #PFM_ALL2
If InFlag = 1
para\dxStartIndent = LeftInd
para\dxRightIndent = RightInd
EndIf
If BFlag = 1
para\wNumbering = BFormat
para\wNumberingStart = BStart
para\wNumberingStyle = BStyle
EndIf
If SpFlag = 1
para\bLineSpacingRule = SpRule
para\dyLineSpacing = LSp
para\dySpaceBefore = SpBefore
para\dySpaceAfter = SpAfter
EndIf
para\wAlignment = Align
SendMessage_(GadgetID(Gadget), #EM_SETPARAFORMAT, 0, @para)
sel\cpMin = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, 0, 0)
sel\cpMax = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, 0, 0)
SendMessage_(GadgetID(Gadget), #EM_EXSETSEL, 0, @sel)
EndProcedure
Procedure AddText(Gadget,Text$,Eolf)
If Eolf = 1
Text$ = Text$ + Chr(10)
EndIf
SendMessage_(GadgetID(Gadget), #EM_REPLACESEL, #True, @Text$)
EndProcedure
LoadFont(0, "Arial", 16)
If OpenWindow(0, 0, 0,500,500, "EditorGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
EditorGadget(1,5,5,490,400)
SetGadgetFont(1, FontID(0))
SetGadgetColor(1, #PB_Gadget_BackColor, $E7FEFD)
SetGadgetColor(1, #PB_Gadget_FrontColor, $FD1618)
SendMessage_(GadgetID(1), #EM_LIMITTEXT, -1, 0)
a.s="{\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fswiss\fcharset0 Arial;}}{\colortbl ;\red255\green0\blue0;\red0\green0\blue0;}"
a.s=a.s+"{\*\generator Msftedit 5.41.15.1503;}\viewkind4\uc1\pard\f0\fs20 Hello, this is \cf1\b\fs32 RTF\cf2\b0\fs20 direct!\cf0\par}"
*MemoryBuffer = AllocateMemory(Len(a.s)+1)
PokeS(*MemoryBuffer, a.s, Len(a.s)+1,#PB_Ascii)
SetGadgetText(1,PeekS(*MemoryBuffer ,Len(a.s)+1))
ButtonGadget(2,5,410,60,22,"Left")
ButtonGadget(3,70,410,60,22,"Center")
ButtonGadget(4,135,410,60,22,"Right")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case 2
;ClearGadgetItems(1)
;AddText(1,"",1)
RangeFormat(1,0,3,0,0,0,#PFA_LEFT)
SetActiveGadget(1)
Case 3
; ClearGadgetItems(1)
; AddText(1,"",1)
RangeFormat(1,0,3,0,0,0,#PFA_CENTER)
SetActiveGadget(1)
Case 4
;ClearGadgetItems(1)
;AddText(1,"",1)
RangeFormat(1,0,3,0,0,0,#PFA_RIGHT)
SetActiveGadget(1)
EndSelect
EndSelect
Until Quit = 1
EndIf