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 :

LiveBindings sur T(DB)RichEdit (VCL)


Sujet :

Composants VCL Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut LiveBindings sur T(DB)RichEdit (VCL)
    Bonjour,

    j'utilise XE6 trial, FireDAc, une base MariaDB et des champs "RTF" codés en Base64. L'application est multi OS développée initialement en Windev avec son "pendant" Lazarus Linux. Je teste XE6 en VCL d'abord (on verra éventuellement plus tard en FMX avec TTMSFMXGrid et ses "Cells with support for HTML formatted text[...]"), le but étant d'obtenir le résultat à terme sous OS X. Mais pour l'instant, je pars de ce que je connais un peu (le VCL), et j'essaie de me rendre compte de ce qu'implique et permet la nouvelle approche Delphi. A ce propos (de nouveauté) le OnDrawColumnCell me "rassure"... "On" s'y retrouve mieux déjà... sauf pour les styles où cela me semble toujours aussi difficile... et toujours aussi peu ingénieux. Certes, c'est une perception usuelle tant qu'on n'a pas compris, mais je me demande quand même, si c'est à ma portée ... et qui s'en sert autrement que par approximationS ?

    Pour en revenir à l'objet de ma question, c'est l'usage ou non du LiveBindings dans mon cas, et si c'est possible, sa mise en oeuvre.

    Le FireDac fonctionne bien... jusqu'au moment où je veux utiliser un dbRichEdit. Là, c'est le programmeur qui ne fonctionne plus.

    Pour être simple, j'ai une solution qui fonctionne avec Delphi XE6
    Dans mon FDQuery, j'ai ajouté un champ calculé puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.FDQuery1CalcFields(DataSet: TDataSet);
    begin
       With dataset do
         FieldByName('joACTcalc').AsString := soap.EncdDecd.DecodeString(FieldByName('joACTIVITE').asString);
    end;
    Pour visualiser correctement dans un TRichEdit, j'ai adapté mon code Lazarus
    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
     
    procedure TForm1.Button2Click(Sender: TObject);
    var
      rtfString : AnsiString;
      mStream   : TMemoryStream;
    begin
      rtfString :=  FDQuery1joACTcalc.AsAnsiString;
     
      mStream := TMemoryStream.Create;
      with mStream do begin
        Write(PAnsiChar(rtfString)^, Length(rtfString));
        Position := 0;
        with RichEdit1 do begin
          Clear;
          RichEdit1.PlainText := False;
          RichEdit1.Lines.LoadFromStream(mStream);
        end;
        Free;
      end;
    end;

    C'est fonctionnel aussi. Mais cela, c'est du Lazarus... loin de la nouvelle techno Embarcadero. J'ai tenté avec le LiveBindings du Dataset sur un TDBrichEdit et même sur le TRichEdit sans aucun succès. Je vois bien le code apparaître dans le RichEdit {\rtf1...} mais pas sa transcription.

    Je résume : j'ai un Blob contenant l'encode base64 d'un RTF. Je veux pouvoir le visualiser dans une Grid (à terme)... mais pour l'instant j'utilise un xxRichEdit. Avec une méthode à la XE, on procède comment ?

    Merci. Cordialement. Gilles
    Dernière modification par Invité ; 02/05/2014 à 11h25. Motif: Précisions

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    je me réponds. A priori le TRichEdit ne se remplit qu'à la main (au clavier) ou par LoadFromxxx (File ou Stream). Pour le TDBRichEdit, je ne sais pas si la lecture d'un blob permet de l'afficher directement dans la mesure où je n'enregistre pas le code du RTF "tel quel" dans la base mais après un encodage base64.

    On va dire "résolu" en ce sens qu'il ne semble pas y avoir d'autres possibilités... et que le temps que je pouvais consacrer à ce problème est écoulé.
    Cordialement. Gilles
    Dernière modification par Invité ; 03/05/2014 à 21h02. Motif: On passe à autre chose...

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

Discussions similaires

  1. Question sur les richedits
    Par Silverstone dans le forum MFC
    Réponses: 2
    Dernier message: 09/07/2006, 02h20
  2. Probleme sur un RichEdit
    Par msstaf dans le forum C++Builder
    Réponses: 2
    Dernier message: 03/07/2006, 22h03
  3. Probleme sur DLL & VCL
    Par Romain² dans le forum Langage
    Réponses: 4
    Dernier message: 03/04/2006, 18h10
  4. VCL.NET : JVCL : peut on installer la JVCL sur D2005 ?
    Par Harry dans le forum Delphi .NET
    Réponses: 6
    Dernier message: 26/09/2005, 16h35
  5. [WIN32]Cherche cours sur Richedit
    Par Invité dans le forum Windows
    Réponses: 2
    Dernier message: 07/06/2004, 22h54

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