Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » Coller du texte dans un richtextedit sans perdre la mise en forme

#1 13-01-2017 16:38:28

stef  
Membre Geek
Date d'inscription: 12-09-2006
Messages: 62
Pépites: 340
Banque: 0

Coller du texte dans un richtextedit sans perdre la mise en forme

Bonjour,
Contexte :
Je crée un modèle de document à partir de plusieurs fichiers rtf, jusque là pas de souci avec la fonction InsertDocument().
Je veux insérer du texte qui ne provient pas d'un fichier rtf, là encore pas de souci, avec les fonctions clipboard() et paste() il me colle bien mon texte.
En revanche dès que j'agis sur la mise en forme avec la fonction setTextStyle il change la police pour la passer en Arial.

Pour info, dans l'objet visuel RichTextEdit il y a une liste déroulante en haut à gauche avec les valeurs
[Normal]
Normal
footer
BODY
[Utiliser la police du paragraphe]

Sur les lignes d'au dessus ce paramètre est à Normal (sans crochet).
Sur le texte que j'ai inséré il est en [Normal] et en Arial alors que le document est en Times New Roman.
Si je sélectionne ma ligne et que je le passe en Normal (sans crochet) la police est rétablie en Times New Roman.
Je ne trouve pas cette propriété dans l'objet RichTextEdit. Apparemment il suffirait de changer cette valeur.
Je ne peux pas voir le nom de cette liste déroulante car c'est encapsulé dans l'objet Powerbuilder on ne peux pas la sélectionner.
Question
Savez-vous comment agir sur cette propriété ?

Merci beaucoup

Code: pb

  ls_chaineToWrite = "~n"+"~n"+'Article '+string(i_iCompteurArticle)+' - ' +a_sTitreArticle+"~n"+"~n"+"~n"
  clipBoard(ls_chaineToWrite)
  uo_ttx.rte_ttx.paste()
  lineToSelect = uo_ttx.rte_ttx.LineCount( )
  if lineToSelect> 0 then
    //Rétablit le insertion point en fin de document pour ne pas écraser du contenu
    l_iRc = uo_ttx.rte_ttx.SelectText ( ( lineToSelect -3) ,1, ( lineToSelect -3), len(trim(ls_chaineToWrite)))
    if l_iRc < 0 then
      MessageBox('erreur', 'Une erreur est survenue à la sélection de la ligne de titre pour mise en forme')
    end if
    //Passe le titre en gras souligné
    l_iRc = uo_ttx.rte_ttx.setTextStyle(true, true, false, false,false, false)//C'est cette ligne qui fait sauter la police pour la passer en Arial
    if l_iRc < 0 then
      MessageBox('erreur', 'Une erreur est survenue à la mise en forme du titre du modèle de contrat pour l~'article '+a_sTitreArticle)
    end if
    //Rétablit le insertion point en fin de document pour ne pas écraser du contenu
    l_iRc = uo_ttx.rte_ttx.selectText(lineToSelect, 1, lineToSelect, 1)
    //Vider le presse papier
  end if

Dernière modification par stef (13-01-2017 16:41:06)

Hors ligne

 

#2 16-01-2017 16:26:27

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Coller du texte dans un richtextedit sans perdre la mise en forme

Je ne pense pas que la police soit une propriété dans l'objet RichTextEdit mais une valeur du fichier RTF.

Pour vérifier il faut regarder le fichier RTF avec tous ses tags puis isoler le tag qui fait référence à la police.

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » Coller du texte dans un richtextedit sans perdre la mise en forme

Pied de page des forums

Propulsé par FluxBB 1.2.22