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

Delphi Discussion :

Copier le contenu d'un champ BLOB contenant du RTF dans un document Word (OLEVariant)


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 73
    Points : 61
    Points
    61
    Par défaut Copier le contenu d'un champ BLOB contenant du RTF dans un document Word (OLEVariant)
    Je balaie une table contenant des bouts de texte au format RTF dans des champs BLOB. Je dois lire sélectivement la table et, pour les articles traités, copier dans un document word les différents paragraphes lus...

    hé bin... je vois vraiment pas comment faire... Parce que si je fais (très bêtement, hein, on est d'accord ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Doc.Application.Selection.Text := tblParagraphes.FieldByName('LIBELLEFR').AsString;
    Bin j'ai bien le contenu texte, genre :

    {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}{\f1\fnil Tahoma;}}
    \viewkind4\uc1\pard\lang1036\f0\fs20 r\'e9gime de pension compl\'e9mentaire\f1\fs16
    Et bon, c'est pas exactement ça que je veux

    Passer par un TDBRichEdit créé dynamiquement ? Mais encore...

    Le trou complet...

    Paul

  2. #2
    Membre du Club
    Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 73
    Points : 61
    Points
    61
    Par défaut solution "grosse ficelle"
    Bon, j'ai passé la nuit là-dessus, rogntudju...
    Alors, un truc qui marche, mais qui est (je trouve) une monstruosité :

    Je crée dynamiquement un TDBRichEdit, et je le rattache au datasource de la table que je suis en train de lire, à la bonne zone :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var
       gtalc : TDBRichEdit;
    begin
     (...) 
       gtalc := TDBRichEdit.Create(nil);
       gtalc.ParentWindow := Form1.Handle;
       gtalc.DataSource    := dsParagraphes;
       gtalc.DataField       := 'LIBELLEFR';
    end;
     
    // (GTCALC = "gros truc à la con" :lol: )
    Puis, pour l'envoyer dans le document Word via mon OLEVariant, je passe par le presse-papier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
             gtalc.SelectAll;
             gtalc.CopyToClipboard;
             Doc.Application.Selection.PasteAndFormat(wdPasteDefault);
    Bref, ça marche, mais je ne mets pas résolu parce que j'espère bien que quelqu'un connaît une méthode un peu plus élégante...

    Paul

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/06/2009, 11h46
  2. Réponses: 6
    Dernier message: 09/04/2009, 19h36
  3. Réponses: 4
    Dernier message: 23/01/2009, 18h57
  4. Copier le contenu d'un champ de saisie dans le presse-papier
    Par pegase23 dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/12/2008, 17h50
  5. Copier le contenu d'un champ dans 2 tables
    Par Bonosvox dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/03/2008, 13h08

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