Voici un code permettant de concaténer des chaines RTF de polices différentes, pour les afficher dans un champ de type "Libellé avec mise en forme RTF" (Champ Libellé Onglet détail, cocher "Texte avec mise en forme (R.T.F)"), sans passer par un champ de saisie RTF.
Dans cet exemple, la chaine finale obtenue est la suivante : "Verdana10RougeArial8VertTahoma12BleuGras Trebuchet10NoirSouligne" (Chaque partie étant mise en forme avec la police représentée) :
Procédure RTF_Concat_Texte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 //Champ de Type "Libellé avec mise en forme RTF" Lib_RTF = "" LOCAL sTexteRTF est une chaîne sTexteRTF = Texte_Vers_RTF(sTexteRTF) sTexteRTF = RTF_Concat_Texte(sTexteRTF,"Verdana10Rouge","Verdana",10,iRougeFoncé) sTexteRTF = RTF_Concat_Texte(sTexteRTF,"Arial8Vert","Arial",8,iVertFoncé) sTexteRTF = RTF_Concat_Texte(sTexteRTF,"Tahoma12BleuGras","Tahoma",12,iBleuFoncé,Vrai) sTexteRTF = RTF_Concat_Texte(sTexteRTF," ") sTexteRTF = RTF_Concat_Texte(sTexteRTF,"Trebuchet10NoirSouligne","Trebuchet",10,iNoir,Faux,Vrai) Lib_RTF = sTexteRTF
Procédure Texte_Vers_RTF :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 PROCEDURE RTF_Concat_Texte(... LOCAL _sTexteRTF1 est une chaîne,... LOCAL _sTexteRTF2 est une chaîne,... _sPolice est une chaîne="",... _iTaille est un entier=-1,... _iCouleur est un entier=-1,... _iGras est un entier=-1,... _iSouligne est un entier=-1) _sTexteRTF2 = Texte_Vers_RTF(_sTexteRTF2) _sTexteRTF2 = RTF_Police(_sTexteRTF2,_sPolice,_iTaille,_iCouleur,_iGras,_iSouligne) _sTexteRTF2 = RTF_Concat(_sTexteRTF1,_sTexteRTF2) RENVOYER _sTexteRTF2
Procédure RTF_Police :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 PROCEDURE Texte_Vers_RTF(LOCAL _sTexte est une chaîne) //En attendant la procédure W-Langage "Texte_Vers_RTF" implémentée à partir de Windev 18 LOCAL sTexteRTF est une chaîne sTexteRTF = "" sTexteRTF = RTFAjoute(sTexteRTF,_sTexte) //La fonction RTFAjoute ajoute 2 RC en fin de chaine //Je les supprime sTexteRTF = Gauche(sTexteRTF,Taille(sTexteRTF)-5) sTexteRTF += "}" RENVOYER sTexteRTF
Procédure RTF_Concat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 PROCEDURE RTF_Police(__sTexteRTF est une chaîne,... _sPolice est une chaîne="",... _iTaille est un entier=-1,... _iCouleur est un entier=-1,... _iGras est un entier=-1,... _iSouligne est un entier=-1) LOCAL iTaille est un entier iTaille = Taille(__sTexteRTF) SI _sPolice <> "" ALORS __sTexteRTF = RTFSélection(__sTexteRTF,rtfNomPolice,_sPolice,1,iTaille) FIN SI _iTaille <> -1 ALORS __sTexteRTF = RTFSélection(__sTexteRTF,rtfTaillePolice,_iTaille,1,iTaille) FIN SI _iCouleur <> -1 ALORS __sTexteRTF = RTFSélection(__sTexteRTF,rtfCouleur,_iCouleur,1,iTaille) FIN SI _iGras <> -1 ALORS __sTexteRTF = RTFSélection(__sTexteRTF,rtfGras,_iGras,1,iTaille) FIN SI _iSouligne <> -1 ALORS __sTexteRTF = RTFSélection(__sTexteRTF,rtfSouligné,_iSouligne,1,iTaille) FIN RENVOYER __sTexteRTF
Bonne prog
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 PROCEDURE RTF_Concat(LOCAL _sTexteRTF1 est une chaîne,LOCAL _sTexteRTF2 est une chaîne) LOCAL sTexteRTFFinal est une chaîne sTexteRTFFinal = RTFAjoute(_sTexteRTF1,_sTexteRTF2) //La fonction RTFAjoute ajoute 2 RC en fin de chaine //Je les supprime ainsi que la balise \par sTexteRTFFinal = Gauche(sTexteRTFFinal,Taille(sTexteRTFFinal)-9) sTexteRTFFinal += "}" RENVOYER sTexteRTFFinal
Partager