EditorGadget et format RTF
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Ce code permet de mettre du RTF dans un Editorgadget. Mais comment récupérer le code RTF de la ligne 0, par exemple ?kiriasse a écrit :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
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Merci !
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Je viens de terminer cet exemple:
Code : Tout sélectionner
; Nico
; Une partie de cette procédure est une reprise
; d'un code du Soldat Inconnu
; PB V3.93, le 19/05/05
Procedure.s GetRichText()
If OpenClipboard_(0)
NbFormat = CountClipboardFormats_()
;Debug "Nombre de format contenu dans le presse papier : " + Str(NbFormat)
format = 0
For n = 1 To NbFormat
;Debug Str(n) + "\"
format = EnumClipboardFormats_(format)
Nom.s = Space(255)
GetClipboardFormatName_(format, @Nom.s, 255)
;Debug " Format = " + Str(format) + " (" + Nom + ")"
Hmem = GetClipboardData_(format)
*lpmem=GlobalLock_(Hmem)
If *lpmem
If Nom="Rich Text Format"
Texte.s= PeekS(*lpmem)
EndIf
GlobalUnLock_(Hmem)
EndIf
Next
CloseClipboard_()
Else
Debug "Erreur"
EndIf
ProcedureReturn Texte
EndProcedure
If OpenWindow(0,0,0,300,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"EditorGadget")
CreateGadgetList(WindowID(0))
EditorGadget (0,10,40,280,220,#PB_Container_Raised)
ButtonGadget(1,10,10,200,20,"Récupérer le texte au format RTF")
For a=0 To 5
AddGadgetItem(0,a,"Line "+Str(a))
Next
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_EventGadget
Select EventGadgetID()
Case 1
SendMessage_(GadgetID(0),#EM_SETSEL, 0, -1)
SendMessage_(GadgetID(0),#WM_COPY,0,0)
MessageRequester("Texte RTF",GetRichText())
EndSelect
EndSelect
Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Dernière modification par nico le jeu. 19/mai/2005 20:35, modifié 1 fois.
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Merci à Mr qui code plus vite que son ombre !
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net