Comment utiliser le format RTF dans un EditorGadget ?
Est-ce possible

Code : Tout sélectionner
EditorGadget(#editeur, 0, 70, 500, 300,#PB_Container_Raised)
SendMessage_(GadgetID(#editeur), #EM_SETTARGETDEVICE, #Null, 0)
Code : Tout sélectionner
; === Déclaration des constantes
; --- Window
#FllPrin = 0
; --- Gadget
#Gadget_Editeur = 0
; === Déclaration des variables globales, des structures, des listes, tableaux...
Global sEnTeteRTF.s
Global sInfoRTF.s
Global NL.s
; --- sEnTeteRTF
NL = Chr(13) + Chr(10)
sEnTeteRTF = "{\rtf1 \ansi \deftab1134 \deff0 \fs18" + NL
sEnTeteRTF = sEnTeteRTF + "{\fonttbl" + NL
sEnTeteRTF = sEnTeteRTF + "{\f0 \fswiss Arial;}" + NL
sEnTeteRTF = sEnTeteRTF + "{\f1 \froman Times New Roman;}" + NL
sEnTeteRTF = sEnTeteRTF + "}" + NL
sEnTeteRTF = sEnTeteRTF + "{\colortbl" + NL
sEnTeteRTF = sEnTeteRTF + ";" + NL
sEnTeteRTF = sEnTeteRTF + "\red0\green0\blue0;" + NL
sEnTeteRTF = sEnTeteRTF + "\red255\green0\blue0;" + NL
sEnTeteRTF = sEnTeteRTF + "}" + NL
; --- sInfoRTF
sInfoRTF = sEnTeteRTF + NL + "{" + NL
sInfoRTF = sInfoRTF + "\plain \cf2 \fs30 \qc \li0 \b TEXTE AU FORMAT RTF" + NL
sInfoRTF = sInfoRTF + "\par" + NL
sInfoRTF = sInfoRTF + "\par"+ NL
sInfoRTF = sInfoRTF + "\plain \f0 \fs20 \cf0 \ql \li100 \ri0 • Ceci est une petite démo qui consiste à afficher du texte au format RTF dans un EditorGadget de PureBasic." + NL
sInfoRTF = sInfoRTF + "\par" + NL
sInfoRTF = sInfoRTF + "\par" + NL
sInfoRTF = sInfoRTF + "\plain \f0 \fs20 \cf0 \ql \li100 \ri100 \b • Caractères gras" + NL
sInfoRTF = sInfoRTF + "\par" + NL
sInfoRTF = sInfoRTF + "\par" + NL
sInfoRTF = sInfoRTF + "\plain \f0 \fs20 \cf0 \ql \li100 \ri100 \i • Caractères en italique" + NL
sInfoRTF = sInfoRTF + "\par" + NL
sInfoRTF = sInfoRTF + "\par" + NL
sInfoRTF = sInfoRTF + "}}" + NL
; === Déclaration des procédures
Procedure Affiche_FllPrin()
If OpenWindow(#FllPrin, 0, 0, 620, 450, #PB_Window_SystemMenu|#PB_Window_ScreenCentered,"RTF et EditorGadget")=0
End
EndIf
If CreateGadgetList(WindowID())=0
End
EndIf
EditorGadget(#Gadget_Editeur, 20, 20, 580, 410, #PB_Container_Raised)
SendMessage_(GadgetID(#Gadget_Editeur), #EM_SETTARGETDEVICE, #Null, 0)
AddGadgetItem(#Gadget_Editeur, 0, sInfoRTF)
EndProcedure
; === Début du programme
Affiche_FllPrin()
; === Sortie du programme
Repeat
Event = WaitWindowEvent()
Until Event = #PB_EventCloseWindow
End
Code : Tout sélectionner
sEnTeteRTF = "{\rtf1 \ansi \deftab1134 \deff0 \fs18" + NL
Code : Tout sélectionner
; === Déclaration des constantes
; --- Window
#FllPrin = 0
; --- Gadget
#Gadget_Editeur = 0
; === Déclaration des variables globales, des structures, des listes, tableaux...
Global sEnTeteRTF.s
Global sInfoRTF.s
Global NL.s
; --- sEnTeteRTF
NL = Chr(13) + Chr(10)
sEnTeteRTF = "{\rtf1 \ansi \deftab1134 \deff0 \fs20" + NL
; \rtf1 : version de rtf
; \ansi : set de caractères
; \deftab1134 :
; \deff0 : Font par défaut (ici la 0 soit \fswissArial) déclarée dans la table des fonts !
; \fs18 : taille par défaut de la police
sEnTeteRTF = sEnTeteRTF + "{\fonttbl" + NL
sEnTeteRTF = sEnTeteRTF + "{\f0 \fswiss Arial;}" + NL
sEnTeteRTF = sEnTeteRTF + "{\f1 \froman Times New Roman;}" + NL
sEnTeteRTF = sEnTeteRTF + "}" + NL
sEnTeteRTF = sEnTeteRTF + "{\colortbl" + NL
sEnTeteRTF = sEnTeteRTF + ";" + NL
sEnTeteRTF = sEnTeteRTF + "\red0\green0\blue0;" + NL
sEnTeteRTF = sEnTeteRTF + "\red255\green0\blue0;" + NL
sEnTeteRTF = sEnTeteRTF + "\red0\green255\blue0;" + NL
sEnTeteRTF = sEnTeteRTF + "}" + NL
; --- sInfoRTF
sInfoRTF = sEnTeteRTF + NL + "{" + NL
sInfoRTF = sInfoRTF + "\plain \cf2 \ql \li100 \b TEXTE AU FORMAT RTF" + NL
sInfoRTF = sInfoRTF + "\par" + NL
;\plain :réinitialise la police cad taille, font utilisée, gras, italiq, alignement
; cfN : couleur du texte suivant par rapport à table des couleurs ci dessus
;\fs taille du texte
;\q c :centré r : à droite l : à gauche
;\li0 : marge à gauche
;\b gras
;\par : nouveau paragraphe
sInfoRTF = sInfoRTF + "}}" + NL
; === Déclaration des procédures
Procedure Affiche_FllPrin()
If OpenWindow(#FllPrin, 0, 0, 620, 450, #PB_Window_SystemMenu|#PB_Window_ScreenCentered,"RTF et EditorGadget")=0
End
EndIf
If CreateGadgetList(WindowID())=0
End
EndIf
EditorGadget(#Gadget_Editeur, 20, 20, 580, 410)
SendMessage_(GadgetID(#Gadget_Editeur), #EM_SETTARGETDEVICE, #Null, 0)
AddGadgetItem(#Gadget_Editeur, 0, sInfoRTF)
EndProcedure
; === Début du programme
Affiche_FllPrin()
; === Sortie du programme
Repeat
Event = WaitWindowEvent()
Until Event = #PB_EventCloseWindow
End
Code : Tout sélectionner
Procedure.s TableauRTF(nbcol,nbligne,largeur)
result.s = "{\rtf1\trowd"
For i=1 To nbcol
result + "\cellx"+Str(i*largeur)
Next
For j=1 To nbligne
result + "\intbl"
For i=1 To nbcol
result + "\cell"
Next
result + "\row"
Next
result + "}"
ProcedureReturn result
EndProcedure
hWnd = OpenWindow(0,0,0,800,600,#PB_Window_SystemMenu | #PB_Window_ScreenCentered,"Tableau")
CreateGadgetList(hWnd)
EditorGadget(1,10,10,780,580)
SetGadgetText(1,TableauRTF(30,20,200))
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_CloseWindow
Quit = #True
EndSelect
Until Quit