IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

[D2010] Comment copier le texte formaté d'un TRichEdit dans un autre ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 703
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 703
    Par défaut [D2010] Comment copier le texte formaté d'un TRichEdit dans un autre ?
    Comment copier le texte formaté d'un TRichEdit dans un autre ?

    J'ai essayé de plein de façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          FormProcedureStockee.RichEdit.Lines.Text := RichEdit.Lines.Text;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          RichEdit.PlainText := True;
          RichEdit.Lines.SaveToFile(GetRepertoireTemp + 'Temp.rtf');
          FormProcedureStockee.RichEdit.PlainText := True;
          FormProcedureStockee.RichEdit.Lines.LoadFromFile(GetRepertoireTemp + 'Temp.rtf');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          RichEdit.SelectAll;
          RichEdit.CopyToClipboard;
          FormProcedureStockee.RichEdit.Lines.Clear;
          FormProcedureStockee.RichEdit.PasteFromClipboard;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
          Flux := TMemoryStream.Create;
          try
             RichEdit.Lines.SaveToStream(Flux);
             FormProcedureStockee.RichEdit.Lines.LoadFromStream(Flux);
          finally
             Flux.Free;
          end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
          Flux := TStringStream.Create;
          try
             RichEdit.Lines.SaveToStream(Flux);
             FormProcedureStockee.RichEdit.PlainText := True;
             FormProcedureStockee.RichEdit.Text := Flux.DataString;
             FormProcedureStockee.RichEdit.PlainText := False;
          finally
             Flux.Free;
          end;
    J'ai essayé les codes ci-dessus en activant ou désactivant PlainText sans succès.
    Soit le RichEdit destination est vide, soit le texte n'est pas formaté, soit je vois le texte du formatage (les balises).

    Comment faut faire ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  2. #2
    Invité
    Invité(e)
    Par défaut
    Cela fonctionne sous mon XE2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.Button2Click(Sender: TObject);
     var
        ms: TMemoryStream;
     begin
        ms := TMemoryStream.Create;
        try
         RichEdit1.Lines.SaveToStream(ms) ;
         ms.Seek(0, soFromBeginning) ;
         RichEdit2.Lines.LoadFromStream(ms) ;
        finally
         ms.Free;
        end;
     end;

  3. #3
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 703
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 703
    Par défaut
    Ca marche !

    Ce de TMemoryStream ne revient pas tout seul au début.


    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  4. #4
    Membre actif
    Homme Profil pro
    Archi
    Inscrit en
    Décembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Archi
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 38
    Par défaut
    Citation Envoyé par retwas Voir le message
    Cela fonctionne sous mon XE2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.Button2Click(Sender: TObject);
     var
        ms: TMemoryStream;
     begin
        ms := TMemoryStream.Create;
        try
         RichEdit1.Lines.SaveToStream(ms) ;
         ms.Seek(0, soFromBeginning) ;
         RichEdit2.Lines.LoadFromStream(ms) ;
        finally
         ms.Free;
        end;
     end;

    Bonjour,
    Entre 2 richedit, cela fonctionne effectivement nickel.
    Par contre, entre un DBrichedit vers un richedit, le texte est bien copié, mais le formatage perdu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/09/2010, 22h18
  2. Réponses: 8
    Dernier message: 30/03/2009, 12h45
  3. comment copier le texte dans des champs
    Par pierrot67 dans le forum Bases de données
    Réponses: 5
    Dernier message: 08/12/2006, 10h05
  4. comment mettre du texte formaté dans une frame?
    Par afrikha dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 09/10/2005, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo