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 :

[d6][TRichEdit] copier le contenu (rtf) d'un richedit


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 106
    Points : 66
    Points
    66
    Par défaut [d6][TRichEdit] copier le contenu (rtf) d'un richedit
    Bonjour,
    J'ai une fonction qui doit me copier le text rtf d'un richedit a un autre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure CopyRTF;
      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;
    Ca ne marche pas. Ca ne copie rien du tout. J'ai essayer avec TStringStream au lieu de TMemoryStream mais c'est toujours pareil!

    Merci de votre aide!

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 665
    Détails du profil
    Informations personnelles :
    Âge : 44
    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 665
    Points : 6 980
    Points
    6 980
    Par défaut
    Pourquoi passes-tu par un Stream ?

    :
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ É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.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    sinon il me transforme le texte rtf en string normal.
    J'ai besoin de garder le format rtf.

  4. #4
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 665
    Détails du profil
    Informations personnelles :
    Âge : 44
    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 665
    Points : 6 980
    Points
    6 980
    Par défaut
    En passant par un fichier, ca fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RichEdit.PlainText := False;
    RichEdit.Lines.SaveToFile(ExtractFilePath(Application.ExeName) + 'Temp.txt');
    Regarde la propriété PlainText .
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ É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.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    Ca marche pas chez moi SaveToFile.
    Le fichier est creer mais il est vide!

    En plus je peux pas me permettre de creer un fichier temporaire a chaque fois. je voulais utiliser SaveToStream...

  6. #6
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    bonjour,

    je n'ai pas delphi sur ce PC donc je n'ai pas pu tester.

    avez vous essayé richedit1.text := richedit2.text

    avec la propriété plaintext à false (sur les 2 richedit)

  7. #7
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Il a raison , il faut passer par un stream

    Voici une procedure qui le fait très bien :
    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 CopyRich(Rich1, Rich2: TRichedit);
    var
      MemoryStream: TMemoryStream;
    begin
      if Rich1.Text <> '' then
      begin
        MemoryStream := TMemoryStream.Create;
        try
          Rich1.Lines.SaveToStream(MemoryStream);
           MemoryStream.Position := 0;
           Rich2.Lines.LoadFromStream(MemoryStream);
        finally
          MemoryStream.Free;
        end;
      end
      else
        Rich2.Clear;
    end;
    Bon courage

    Edit: j'avais oublié les bloc de protection
    Edit2 : tu remarqueras que j'utilise plutôt MemoryStream.Position := 0;
    Bidouilleuse Delphi

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    Merci.
    C'est un peu comme j'ai fais moi. j'y ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MemoryStream.Position := 0;
    a la place de ce que j'avais mis.
    Mais ca ne marche toujours pas.

    Peut etre ca a t'il un rapport avec le fait que j'utilise le composant: TRXRichEdit et pas TRichEdit...?

  9. #9
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par Redsky
    Peut etre ca a t'il un rapport avec le fait que j'utilise le composant: TRXRichEdit et pas TRichEdit...?
    ça se peut...

    En tout cas, vérifie bien que tes propriétés PlainText sont à False.

    Sinon, je ne vois pas : : :
    Bidouilleuse Delphi

  10. #10
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Salut mon nom c'est kamaté
    Tu peux essayer avec la méthode
    Richedit1:=richedit2 ;

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/05/2007, 10h26
  2. Copier le contenu d'un répertoire
    Par bianconeri dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/12/2006, 13h00
  3. [MySQL]Copier le contenu d'une BD MySQL
    Par Kubiak62 dans le forum Administration
    Réponses: 7
    Dernier message: 30/11/2005, 10h47
  4. copier le contenu d'une page web dans un fichier texte
    Par wassila dans le forum C++Builder
    Réponses: 30
    Dernier message: 28/08/2005, 22h27
  5. Réponses: 2
    Dernier message: 16/07/2004, 09h30

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