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
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 procedure TForm1.FDQuery1CalcFields(DataSet: TDataSet); begin With dataset do FieldByName('joACTcalc').AsString := soap.EncdDecd.DecodeString(FieldByName('joACTIVITE').asString); end;
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
Partager