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 :

[D7] Comment ajouter une image dans du RTF ?


Sujet :

Delphi

  1. #1
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    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 664
    Points : 6 967
    Points
    6 967
    Par défaut [D7] Comment ajouter une image dans du RTF ?
    Est-il possible d'insérer une image dans un RichEdit ?
    Si oui, comment ?

    Et sinon, existe t'il une documentation sur le format RTF ?



    Merci.
    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)

  2. #2
    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
    J'eu, autrefois, donné une réponse là :
    http://www.developpez.net/forums/sho...74&postcount=3

    Bidouilleuse Delphi

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut
    voir ce topiq sur developpez : Ici

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  4. #4
    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
    J'ai été grillé par anapurna

    via le support des liens OLE ça a l'air effectivement possible. Ce qui signifie toutefois que l'image restera extérieure au fichier RTF.
    Bidouilleuse Delphi

  5. #5
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    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 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par waskol
    Non, à priori il n'y a pas moyen de faire ça dans un TRichEdit étant donné que ce contrôle basé sur l'API Windows (ceci explique celà), ne supporte que le format RTF générique. Qui ne supporte pas les dessins comme le format RTF de Word95.
    Dommage.
    Effectivement, RichEdit ne sait pas lire les images d'un RTF.

    Citation Envoyé par waskol
    via le support des liens OLE ça a l'air effectivement possible. Ce qui signifie toutefois que l'image restera extérieure au fichier RTF.
    Pas glop ça. C'est pas le but recherché ...

    Bon, bin les utilisateurs se passeront d'images.
    S'il n'y a pas d'autre solution ... sans passer par la RxLib.
    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)

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par Lung
    sans passer par la RxLib.
    Il existe d'autres composants similaire. Perso, j'ai réalisé mon propre éditeur pour mon tchat en me basant sur une ancienne version de RichView que j'ai amélioré; Il se charge lui-même d'absolument tout l'affichage ce qui rend possible l'intégration de controls comme TButton, TEdit, TCheckBox, etc... Il est même possible d'y afficher des GIF animés et des images PNG (masque alpha).

    Une autre solution est d'utiliser les seules unités nécessaires de la RxLib (4 fichiers) pour créer dynamiquement l'objet TRxRichEdit ce qui évite l'installation de composants suplémentaires dans la palette de Delphi. C'est justement ce que je te propose avec cette démo :

    http://sub0.developpez.com/delphi/rximage.zip

    Tous mes programmes n'utilisent que les composants natifs de Delphi. Les composants suplémentaires sont ajoutés dynamiquement. Je n'utilise que des compo dont je possède les sources. à+
    De retour parmis vous après 10 ans!!

  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
    Pour le faire avec les OLE, voici une unté (qui n'est pas de moi )
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    unit ImageRTF;
     
    interface
     
    uses Windows;
     
    procedure InsertBitmapToRE(Wnd:HWND; Bmp:HBITMAP);
     
    implementation
     
    uses Activex, RichEdit;
     
    const
      IID_IDataObject: TGUID = (
       D1:$0000010E;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
      IID_IOleObject: TGUID = (
        D1:$00000112;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
     
      REO_CP_SELECTION    = ULONG(-1);
      REO_IOB_SELECTION   = ULONG(-1);
      REO_GETOBJ_POLEOBJ  =  $00000001;
     
    type
      TReobject = record
        cbStruct: DWORD;
        cp: ULONG;
        clsid: TCLSID;
        poleobj: IOleObject;
        pstg: IStorage;
        polesite: IOleClientSite;
        sizel: TSize;
        dvAspect: Longint;
        dwFlags: DWORD;
        dwUser: DWORD;
      end;
     
    type
      IRichEditOle = interface(IUnknown)
        ['{00020d00-0000-0000-c000-000000000046}']
        function GetClientSite(out clientSite: IOleClientSite): HResult; stdcall;
        function GetObjectCount: HResult; stdcall;
        function GetLinkCount: HResult; stdcall;
        function GetObject(iob: Longint; out reobject: TReObject;
          dwFlags: DWORD): HResult; stdcall;
        function InsertObject(var reobject: TReObject): HResult; stdcall;
        function ConvertObject(iob: Longint; rclsidNew: TIID;
          lpstrUserTypeNew: LPCSTR): HResult; stdcall;
        function ActivateAs(rclsid: TIID; rclsidAs: TIID): HResult; stdcall;
        function SetHostNames(lpstrContainerApp: LPCSTR;
          lpstrContainerObj: LPCSTR): HResult; stdcall;
        function SetLinkAvailable(iob: Longint; fAvailable: BOOL): HResult; stdcall;
        function SetDvaspect(iob: Longint; dvaspect: DWORD): HResult; stdcall;
        function HandsOffStorage(iob: Longint): HResult; stdcall;
        function SaveCompleted(iob: Longint; const stg: IStorage): HResult; stdcall;
        function InPlaceDeactivate: HResult; stdcall;
        function ContextSensitiveHelp(fEnterMode: BOOL): HResult; stdcall;
        function GetClipboardData(var chrg: TCharRange; reco: DWORD;
          out dataobj: IDataObject): HResult; stdcall;
        function ImportDataObject(dataobj: IDataObject; cf: TClipFormat;
          hMetaPict: HGLOBAL): HResult; stdcall;
      end;
     
      TImageDataObject=class(TInterfacedObject,IDataObject)
      private
       FBmp:HBITMAP;
       FMedium:TStgMedium;
       FFormatEtc: TFormatEtc;
       procedure SetBitmap(bmp:HBITMAP);
         function GetOleObject(OleClientSite:IOleClientSite; Storage:IStorage):IOleObject;
       destructor Destroy;override;
     
          // IDataObject
        function GetData(const formatetcIn: TFormatEtc; out medium: TStgMedium):
          HResult; stdcall;
        function GetDataHere(const formatetc: TFormatEtc; out medium: TStgMedium):
          HResult; stdcall;
        function QueryGetData(const formatetc: TFormatEtc): HResult;
          stdcall;
        function GetCanonicalFormatEtc(const formatetc: TFormatEtc;
          out formatetcOut: TFormatEtc): HResult; stdcall;
        function SetData(const formatetc: TFormatEtc; var medium: TStgMedium;
          fRelease: BOOL): HResult; stdcall;
        function EnumFormatEtc(dwDirection: Longint; out enumFormatEtc:
          IEnumFormatEtc): HResult; stdcall;
        function DAdvise(const formatetc: TFormatEtc; advf: Longint;
          const advSink: IAdviseSink; out dwConnection: Longint): HResult; stdcall;
        function DUnadvise(dwConnection: Longint): HResult; stdcall;
        function EnumDAdvise(out enumAdvise: IEnumStatData): HResult;
          stdcall;
      public
       procedure InsertBitmap(wnd:HWND; Bitmap:HBITMAP);
      end;
     
     
    { TImageDataObject }
     
    function TImageDataObject.DAdvise(const formatetc: TFormatEtc; advf: Integer;
      const advSink: IAdviseSink; out dwConnection: Integer): HResult;
    begin
         Result:=E_NOTIMPL;
    end;
     
    function TImageDataObject.DUnadvise(dwConnection: Integer): HResult;
    begin
         Result:=E_NOTIMPL;
    end;
     
    function TImageDataObject.EnumDAdvise(out enumAdvise: IEnumStatData): HResult;
    begin
         Result:=E_NOTIMPL;
    end;
     
    function TImageDataObject.EnumFormatEtc(dwDirection: Integer;
      out enumFormatEtc: IEnumFormatEtc): HResult;
    begin
        Result:=E_NOTIMPL;
    end;
     
    function TImageDataObject.GetCanonicalFormatEtc(const formatetc: TFormatEtc;
      out formatetcOut: TFormatEtc): HResult;
    begin
       Result:=E_NOTIMPL;
    end;
     
    function TImageDataObject.GetDataHere(const formatetc: TFormatEtc;
      out medium: TStgMedium): HResult;
    begin
       Result:=E_NOTIMPL;
    end;
     
    function TImageDataObject.QueryGetData(const formatetc: TFormatEtc): HResult;
    begin
       Result:=E_NOTIMPL;
    end;
     
    destructor TImageDataObject.Destroy;
    begin
    ReleaseStgMedium(FMedium);
    end;
     
    function TImageDataObject.GetData(const formatetcIn: TFormatEtc;
      out medium: TStgMedium): HResult;
    begin
        medium.tymed := TYMED_GDI;
      medium.hBitmap :=  FMedium.hBitmap;
      medium.unkForRelease := nil;
      Result:=S_OK;
    end;
     
    function TImageDataObject.SetData(const formatetc: TFormatEtc;
      var medium: TStgMedium; fRelease: BOOL): HResult;
    begin
            FFormatEtc := formatetc;
            FMedium := medium;
            Result:= S_OK;
    end;
     
    procedure TImageDataObject.SetBitmap(bmp: HBITMAP);
    var
    stgm: TStgMedium;
    fm:TFormatEtc;
    begin
        stgm.tymed := TYMED_GDI;
        stgm.hBitmap := bmp;
        stgm.UnkForRelease := nil;
     
        fm.cfFormat := CF_BITMAP;
        fm.ptd := nil;
        fm.dwAspect := DVASPECT_CONTENT;
        fm.lindex := -1;
        fm.tymed := TYMED_GDI;
        SetData(fm, stgm, FALSE);
    end;
     
    function TImageDataObject.GetOleObject(OleClientSite: IOleClientSite;
                                            Storage: IStorage):IOleObject;
    begin
        if (Fmedium.hBitmap=0) then Result:=nil else
        OleCreateStaticFromData(self, IID_IOleObject, OLERENDER_FORMAT,
                            @FFormatEtc, OleClientSite, Storage, Result);
    end;
     
    procedure TImageDataObject.InsertBitmap(wnd:HWND; Bitmap: HBITMAP);
    var
    OleClientSite:IOleClientSite;
    RichEditOLE:IRichEditOLE;
    Storage:IStorage;
    LockBytes:ILockBytes;
    OleObject:IOleObject;
    reobject:TReobject;
    clsid:TGUID;
    begin
      if (SendMessage(wnd, EM_GETOLEINTERFACE, 0, cardinal(@RichEditOle))=0) then
       exit;
     
        FBmp:=CopyImage(Bitmap,IMAGE_BITMAP,0,0,0);
        if  FBmp=0 then exit;
        try
          SetBitmap(Fbmp);
          RichEditOle.GetClientSite(OleClientSite);
          if (OleClientSite=nil) then exit;
          CreateILockBytesOnHGlobal(0, TRUE,LockBytes);
            if (LockBytes = nil) then exit;
            if (StgCreateDocfileOnILockBytes(LockBytes, STGM_SHARE_EXCLUSIVE or STGM_CREATE
                                         or STGM_READWRITE, 0,Storage)<> S_OK) then
          begin
            LockBytes._Release;
            exit
          end;
     
          if (Storage = nil) then exit;
          OleObject:=GetOleObject(OleClientSite, Storage);
          if (OleObject = nil) then exit;
          OleSetContainedObject(OleObject, TRUE);
     
          ZeroMemory(@reobject, sizeof(TReobject));
          reobject.cbStruct := sizeof(TReobject);
          OleObject.GetUserClassID(clsid);
          reobject.clsid := clsid;
          reobject.cp := REO_CP_SELECTION;
          reobject.dvaspect := DVASPECT_CONTENT;
          reobject.poleobj := OleObject;
          reobject.polesite := OleClientSite;
          reobject.pstg := Storage;
     
          RichEditOle.InsertObject(reobject);
       finally
        DeleteObject(FBmp)
       end
    end;
     
     
    procedure InsertBitmapToRE(Wnd:HWND; bmp:HBITMAP);
    begin
    with TImageDataObject.Create do
    try
      InsertBitmap(Wnd,Bmp);
    finally
      Free
    end
    end;
     
     
    end.
    Et voici comment celà s'utilise (1 Fiche, 1 TOpenPictureDialog, 1 TRichEdit et un TButton:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls, ExtDlgs;
     
    type
      TForm1 = class(TForm)
        RichEdit1: TRichEdit;
        Button1: TButton;
        OpenPictureDialog1: TOpenPictureDialog;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
    uses unit2;
    {$R *.dfm}
    procedure InsereImage(Chemin:string;RichEdit:TRichEdit);
    var Bmp:TBitmap;
    begin
      bmp:=TBitmap.Create;
      try
      bmp.LoadFromFile(chemin);
      InsertBitmapToRE(RichEdit.Handle,bmp.Handle);
      finally
        bmp.Free;
      end;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if OpenPictureDialog1.Execute then
        InsereImage(OpenPictureDialog1.FileName,RichEdit1);
    end;
     
    end.
    Je ne sais pas pourquoi, mais j'ai comme l'impression que l'on peut simplifier le code de l'unité ci-dessus avec des Interfaces déjà éxistantes...
    Bidouilleuse Delphi

  8. #8
    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
    Je confirme, il ya a moyen de se passer des OLE
    Bidouilleuse Delphi

  9. #9
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Points : 76
    Points
    76
    Par défaut
    tu trouveras ton bonheur ici : http://herea.soft.free.fr/Unites.htm , regarde RichOle

    Bruno

  10. #10
    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
    Je dément ce que j'ai dis plus haut, ce n'est pas si simple
    Bidouilleuse Delphi

  11. #11
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    J'avais commencé à préparer une archive pour le proposer dans la page sources.
    J'en ai profité pour ajouter la possibilité de charger des images Jpeg.
    Waskol : Pourrais-tu me dire où tu as trouvé ce code ?
    Et si tu veux publier ce code dans la page sources, ya pas de pb.
    De retour parmis vous après 10 ans!!

  12. #12
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je viens de voir la [Q/R] dans la Faq...
    De retour parmis vous après 10 ans!!

  13. #13
    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 Sub0
    J'avais commencé à préparer une archive pour le proposer dans la page sources.
    J'en ai profité pour ajouter la possibilité de charger des images Jpeg.
    Waskol : Pourrais-tu me dire où tu as trouvé ce code ?
    Et si tu veux publier ce code dans la page sources, ya pas de pb.
    Je l'ai trouvé ici :
    http://forum.codeby.net/topic8285.ht...=0&#entry38786

    Je te laisse en charge d'une éventuelle publication, je n'aurais malheureusement pas le temps de m'en occuper.
    Bidouilleuse Delphi

  14. #14
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par waskol
    Je l'ai trouvé ici :
    http://forum.codeby.net/topic8285.ht...=0&#entry38786

    Je te laisse en charge d'une éventuelle publication, je n'aurais malheureusement pas le temps de m'en occuper.
    J'ai simplement ajouté l'adresse dans l'en-tête du code source.
    Reste à rédiger la QR... Lung, tu es intéressé ?
    De retour parmis vous après 10 ans!!

  15. #15
    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
    En fait, le problème, c'est que ce n'est pas persistant comme solution.

    Par exemple, si tu sauvegarde ton fichier RTF, celà va s'enregistrer de cette façon :
    {\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fnil\fcharset0 MS Sans Serif;}{\f1\fnil MS Sans Serif;}}
    \viewkind4\uc1\pard\f0\fs16 D\'e9mineur\f1
    \par {\pict\wmetafile8\picw1719\pich1296\picwgoal975\pichgoal735
    010009000003fa1200000000e41200000000050000000b0200000000050000000c021005b706e4
    120000430f2000cc00000031004100000000001005b70600000000280000004100000031000000
    010018000000000084250000c40e0000c40e0000000000000000000069a18b85bdab7fb2a4ffff
    ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    ffffffffffffff8080808080808080808080808080808080808080808080808080808080808080
    80808080808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffff
    ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00808080c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c080808080808080808080808080808080808080808080808080808080808080808080808080
    8080808080808080c0c0c080808080808080808080808080808080808080808080808080808080
    8080808080808080808080808080808080808080ffffffffffff000000ffffffffffffffffffff
    ffffffffffffffffffffff000000ffffffffffffffffffffffffffffff00808080c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    ffffffc0c0c0808080808080808080808080808080808080808080808080808080808080808080
    808080808080808080ffffffc0c0c0808080808080808080808080808080808080808080808080
    808080808080808080808080808080808080808080ffffffffffff000000ffffff000000ffffff
    000000ffffffffffffffffff000000ffffffffffffffffffffffffffffff00808080c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080ffffffffffff000000ffffffffffff0000
    00ffffffffffffffffffffffff000000ffffffffffffffffffffffffffffff00808080c0c0c0c0
    c0c0c0c0c0000000c0c0c0000000000000000000000000000000c0c0c0000000c0c0c0c0c0c0c0
    c0c0ffffffffffffc0c0c0c0c0c0000000000000000000000000000000000000000000000000c0
    c0c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080ffffffffffff000000ffffff000000ff
    ffff000000ffffffffffffffffff000000ffffffffffffffffffffffffffffff00808080c0c0c0
    c0c0c0c0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0c0c0c0
    c0c0c0ffffffffffffc0c0c0c0c0c0000000000000000000000000000000000000000000000000
    c0c0c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080000000000000000000ffffffffffff
    ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff00808080c0c0
    c0c0c0c0c0c0c0000000000000000000000000000000000000000000000000000000c0c0c0c0c0
    c0c0c0c0ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0000000000000000000000000c0c0c0c0c0
    c0c0c0c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080ffffffffffffffffffffffffffff
    ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00808080c0
    c0c0c0c0c0c0c0c0000000000000000000000000000000000000000000000000000000c0c0c0c0
    c0c0c0c0c0ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080000000000000000000ffffffff
    ffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff00808080
    c0c0c0000000000000000000000000000000000000000000000000000000000000000000000000
    000000c0c0c0ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080000000ffffff000000ffffff
    000000ffffff000000ffffffffffffffffff000000ffffffffffffffffffffffffffffff008080
    80c0c0c0c0c0c0c0c0c0000000000000ffffffffffff000000000000000000000000000000c0c0
    c0c0c0c0c0c0c0ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000ff0000ffc0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080000000000000000000ffff
    ffffffff000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff0080
    8080c0c0c0c0c0c0c0c0c0000000000000ffffffffffff000000000000000000000000000000c0
    c0c0c0c0c0c0c0c0ffffffffffffc0c0c0c0c0c0c0c0c00000ff0000ff0000ff0000ffc0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080000000ffffff000000ff
    ffff000000ffffff000000ffffff000000ffffffffffffffffffffffffffffffffffffffffff00
    808080c0c0c0c0c0c0c0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0
    c0c0c0c0c0c0c0c0c0ffffffffffffc0c0c0c0c0c00000ff0000ff0000ff0000ff0000ffc0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080000000000000000000
    ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
    00808080c0c0c0c0c0c0c0c0c0000000c0c0c0000000000000000000000000000000c0c0c00000
    00c0c0c0c0c0c0c0c0c0ffffffffffffc0c0c0c0c0c0c0c0c00000ff0000ff0000ff0000ffc0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080ffffffffffffffff
    ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    ff00808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000ff0000ffc0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080ffffffffffffff
    ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    ffff00808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080ffffffffffff
    ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    ffffff00808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffffffffffffffffffffffffff
    ffffffffffffffffffffffffffffffffc0c0c0808080ffffffffffffffffffffffffffffffffff
    ffffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0808080808080ffffffffff
    ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    ffd8e9ec0080808080808080808080808080808080808080808080808080808080808080808080
    8080808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffff
    ffffffffffffffffffffffffffffffffffffffffc0c0c0ffffffffffffffffffffffffffffffff
    ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0c080808080808080
    808080808080808080808080808080808080808080808080808080808080808080808080808080
    8080d8e9ec00808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0d8e9ec00808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffffc0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0d8e9ec00808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffffc0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0d8e9ec00808080c0c0c0c0c0c0000080000080000080000080000080000080000080
    000080000080c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0808000808000808000
    808000808000808000808000808000c0c0c0c0c0c0c0c0c0c0c0c0ffffffc0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080
    c0c0c0c0c0c0c0c0c0808080808080808080808080808080808080808080808080c0c0c0c0c0c0
    c0c0c0c0c0c067a89600808080c0c0c0c0c0c00000800000800000800000800000800000800000
    80000080000080000080c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c08080008080008080008080
    00808000808000808000808000808000808000c0c0c0c0c0c0c0c0c0ffffffc0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c08080
    80c0c0c0c0c0c0808080808080808080808080808080808080808080808080808080808080c0c0
    c0c0c0c0c0c0c080b6a700808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0000080000080000080c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0808000808000808000c0
    c0c0c0c0c0c0c0c0c0c0c0808000808000808000c0c0c0c0c0c0c0c0c0ffffffc0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c080
    8080c0c0c0c0c0c0808080808080808080c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080c0
    c0c0c0c0c0c0c0c08ec8ba00808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0000080000080000080c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0808000808000808000
    c0c0c0c0c0c0c0c0c0c0c0c0808000808000808000c0c0c0c0c0c0c0c0c0ffffffc0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    808080c0c0c0c0c0c0808080808080808080c0c0c0c0c0c0c0c0c0c0c0c0808080808080808080
    c0c0c0c0c0c0c0c0c092cbbe00808080c0c0c0c0c0c00000800000800000800000800000800000
    80000080000080000080000080c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c08080008080008080
    00808000808000808000808000808000808000808000c0c0c0c0c0c0c0c0c0ffffffc0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000000000c0c0c0c0c0c0c0c0c0c0c0
    c0808080c0c0c0c0c0c0c0c0c0808080808080808080808080808080808080808080808080c0c0
    c0c0c0c0c0c0c0c0c0c095cdc200808080c0c0c0c0c0c000008000008000008000008000008000
    0080000080000080000080c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c080800080800080
    8000808000808000808000808000808000808000c0c0c0c0c0c0c0c0c0c0c0c0ffffffc0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000000000c0c0c0c0c0c0c0c0c0c0
    c0c0808080c0c0c0c0c0c0c0c0c0808080808080808080808080808080808080808080808080c0
    c0c0c0c0c0c0c0c0c0c0c0ffffff00808080c0c0c0c0c0c0000080000080000080c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0808000808000
    808000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffffc0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000000000c0c0c0c0c0c0
    c0c0c0808080c0c0c0c0c0c0808080808080808080c0c0c0c0c0c0c0c0c0c0c0c0808080808080
    808080c0c0c0c0c0c0c0c0c0ffffff00808080c0c0c0c0c0c0000080000080000080c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c08080008080
    00808000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffffc0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000000000c0c0c0c0c0
    c0c0c0c0808080c0c0c0c0c0c0808080808080808080c0c0c0c0c0c0c0c0c0c0c0c08080808080
    80808080c0c0c0c0c0c0c0c0c0ffffff00808080c0c0c0c0c0c000008000008000008000008000
    0080000080000080000080000080000080c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c080800080
    8000808000808000808000808000808000808000808000c0c0c0c0c0c0c0c0c0c0c0c0ffffffc0
    c0c0c0c0c0000000000000000000000000000000000000000000000000000000000000c0c0c0c0
    c0c0c0c0c0808080c0c0c0c0c0c080808080808080808080808080808080808080808080808080
    8080808080c0c0c0c0c0c0c0c0c0ffffff00808080c0c0c0c0c0c0000080000080000080000080
    000080000080000080000080000080000080c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0
    808000808000808000808000808000808000808000808000c0c0c0c0c0c0c0c0c0c0c0c0ffffff
    c0c0c0c0c0c0000000000000000000000000000000000000000000000000000000000000c0c0c0
    c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0808080808080808080808080808080808080808080
    808080c0c0c0c0c0c0c0c0c0c0c0c0ffffff00808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffff
    ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffff00808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ff
    ffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffff00808080808080808080808080808080808080
    808080808080808080808080808080808080808080808080808080808080808080808080808080
    808080808080808080808080808080808080808080808080808080808080808080808080808080
    ffffff808080808080808080808080808080808080808080808080808080808080808080808080
    808080808080808080808080808080808080808080808080808080808080808080808080808080
    808080808080808080808080808080808080ffffff00808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c080808000808080c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c080808000808080c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c080808000808080c0c0c0c0c0c0c0c0c0c0c0
    c0ff0000ff0000ff0000ff0000ff0000ff0000ff0000c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0
    c0c0c0c0008000008000008000008000008000008000008000008000008000008000c0c0c0c0c0
    c0c0c0c0808080c0c0c0c0c0c00000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
    ffc0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0800000800000800000c0c0c0c0c0c0c0c0c0c0c0c080808000808080c0c0c0c0c0c0c0c0c0c0
    c0c0ff0000ff0000ff0000ff0000ff0000ff0000ff0000c0c0c0c0c0c0c0c0c0c0c0c0808080c0
    c0c0c0c0c0008000008000008000008000008000008000008000008000008000008000c0c0c0c0
    c0c0c0c0c0808080c0c0c0c0c0c00000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff00
    00ff0000ffc0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0800000800000800000c0c0c0c0c0c0c0c0c0c0c0c080808000808080c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0ff0000ff0000ff0000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080
    c0c0c0c0c0c0008000008000008000008000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000ff
    0000ff0000ffc0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0800000800000800000c0c0c0c0c0c0c0c0c0c0c0c080808000808080c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0ff0000ff0000ff0000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c08080
    80c0c0c0c0c0c0c0c0c0008000008000008000008000008000c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000
    ff0000ff0000ffc0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0800000800000800000c0c0c0c0c0c0c0c0c0c0c0c0ffffff00808080c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0ff0000ff0000ff0000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c080
    8080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0008000008000008000008000008000c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000ff0000ff0000ff0000ff00
    00ff0000ffc0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c080000080000080000080000080
    0000800000800000800000800000800000c0c0c0c0c0c0c0c0c0ffffff00808080c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0ff0000ff0000ff0000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0008000008000008000008000c0c0c0
    c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000ff0000ff0000ff0000ff
    0000ff0000ffc0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0800000800000800000800000
    800000800000800000800000800000800000c0c0c0c0c0c0c0c0c0ffffff00808080c0c0c0c0c0
    c0c0c0c0c0c0c0ff0000ff0000ff0000ff0000ff0000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00080000080000080
    00c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c00000ff0000ff0000ffc0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c08000008000008000
    00c0c0c0c0c0c0800000800000800000c0c0c0c0c0c0c0c0c0c0c0c0ffffff00808080c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0ff0000ff0000ff0000ff0000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0808080c0c0c0c0c0c0008000008000008000c0c0c0c0c0c0c0c0c0c0c0c000800000800000
    8000c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c00000ff0000ff0000ffc0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c080000080000080
    0000c0c0c0c0c0c0800000800000800000c0c0c0c0c0c0c0c0c0c0c0c0ffffff00808080c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ff0000ff0000ff0000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0808080c0c0c0c0c0c0008000008000008000008000008000008000008000008000008000
    008000c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c00000ff0000ff0000ff0000ff0000ff0000ff
    0000ff0000ff0000ff0000ffc0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0800000
    800000800000c0c0c0800000800000800000c0c0c0c0c0c0c0c0c0c0c0c0ffffff00808080c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ff0000ff0000c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0808080c0c0c0c0c0c0c0c0c00080000080000080000080000080000080000080000080
    00c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c00000ff0000ff0000ff0000ff0000ff0000
    ff0000ff0000ff0000ffc0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c08000
    00800000800000c0c0c0800000800000800000c0c0c0c0c0c0c0c0c0c0c0c0ffffff00808080c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffff00808080
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0
    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffff008080
    808080808080808080808080808080808080808080808080808080808080808080808080808080
    80808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    ffffffffffffffffffffffffffc0c0c08080808080808080808080808080808080808080808080
    808080808080808080808080808080808080808080808080808080808080808080808080808080
    80808080808080808080808080808080808080808080808080808080808080808080ffffff0003
    0000000000
    }
    \par }
    On voit bien ici, qu'il y a inclusion "physique" de l'image dans le fichier rtf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    \par {\pict\wmetafile8\picw1719\pich1296\picwgoal975\pichgoal735
    .... données binaires de l'image en hexa...
    }
    D'ailleur, le gros pavé que j'ai mis au-dessus, tu le place dans un fichier TXT, tu renommes l'extension en .RTF, tu l'ouvres avec word, et tu vois l'image.
    Preuve que l'inclusion d'image à bien fonctionné.

    Maintenant si tu recharges ton fichier dans un TRichEdit, ton image disparait : TRichEdit supprime, lors du chargement tout le formatage correspondant à l'image.

    C'est embétant...
    ..à moins que l'on puisse l'empêcher de supprimer ce formattage, auquel cas on a une chance de récupérer notre image et de la visualiser...

    J'irais même plus loin : celà signifie qu'en insérant les bonnes chaînes de format dans la variable privée FRichEditStrings (TRichEditStrings) du TRichEdit, on puisse peut-être créer notre bitmap de toute pièce, sans passer par OLE.
    Bidouilleuse Delphi

  16. #16
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Peut-être en s'inspirant du code d'insersion de l'image dans le TRxRichEdit cette fois... Sinon faudra bricoler c'est clair, genre récupérer le code de l'image dans le fichier RTF et réinsérer l'image dans le RichEdit...
    De retour parmis vous après 10 ans!!

  17. #17
    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 Sub0
    Peut-être en s'inspirant du code d'insersion de l'image dans le TRxRichEdit cette fois... Sinon faudra bricoler c'est clair, genre récupérer le code de l'image dans le fichier RTF et réinsérer l'image dans le RichEdit...
    Je viens d'éditer quand tu postais, je suis donc tout à fait d'accord avec toi
    Bidouilleuse Delphi

  18. #18
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Avec quelle méthode enregistres-tu le fichier RTF ? (je ne m'en souviens plus)
    Il faut mettre la propriété PlainText à False.
    Il exite une méthode nommée RegisterConversionFormat, j'ignore ce qu'elle est sencer faire...
    Sinon, il reste le fameux WriteComponent mais dans ce cas, ce n'est plus un format RTF mais DFM.
    De retour parmis vous après 10 ans!!

  19. #19
    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
    Tout bêtement comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RichEdit1.Lines.SaveToFile()
    Bidouilleuse Delphi

  20. #20
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    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 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par Sub0
    J'avais commencé à préparer une archive pour le proposer dans la page sources.
    J'en ai profité pour ajouter la possibilité de charger des images Jpeg.
    Ca, c'est intéressant !
    Pas de composant non standard. Je regarde dès que possible ...
    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)

Discussions similaires

  1. [XSLT] Comment ajouter une image dans un HTML à partir d'un XML
    Par yellowsub122 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 12/04/2010, 14h59
  2. Comment ajouter une image dans une balise div ??
    Par liv dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/05/2006, 11h48
  3. comment ajouter une image dans mon HTML??
    Par Mickey.jet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/03/2006, 15h12
  4. Comment copier une image dans le presse papier.
    Par cprogil dans le forum Langage
    Réponses: 7
    Dernier message: 09/09/2003, 15h54

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