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 FMX Delphi Discussion :

Gestion de chaines HTML : CR au 04/04/2015


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Gestion de chaines HTML : CR au 04/04/2015
    Bonjour,

    je cherche toujours à maîtriser les chaines HTML sous Win et OS X (donc avec FMX).

    Voici le résultat du jour :


    Les add-on utilisés sont
    • UniDac (en version démo) : surprenant et surtout permet de se connecter à ma base MariaDB même avec OS X avec une toute aussi surprenante facilité notamment au niveau du déploiement.
    • TMS, son pack FMX de démonstration,
    • FastReport FMX Edition Démos
    Tous les add-on ont été chargés cette semaine.

    Voici les problèmes rencontrés encore actuellement :
    • un bug d'édition 1 dans le TMSFMXRichEditor (l'espace fond jaune devant le nom ne devrait pas exister) qui semble indépendant d'un autre bug de transcription en HTML : les balises ne sont pas imbriquées : <B><I>... </B></I> au lieu de <B><I>... </I></B>. Autre problème, le composant TMSFMXRichEditorMiniHTMLIO ne semble pas compatible OS X... Théoriquement, il ne l'est pas non plus pour Win 64 mais seulement pour Win 32, enfin c'est ce qu'indique la bulle de compatibilité dans la liste des composants de mon XE7... Et pourtant, il fonctionne en Win 64... La cross-compilation OS X ne m'indique rien... et le programme ne démarre pas ... sauf quand j'enlève ce composant.
    • la TMSFMXGrid ne gère pas les background 2
    • FastReport FMX gère toujours très partiellement le HTML (enfin pas les couleurs) 3


    Les progrès constatés :
    • D'abord l'emploi d'UniDac a permis de régler de manière élégante et simplissime les connexions à mes bases MariaDB. Je n'ai pas réussi avec FireDac en cross-compilation OS X. La solution est élégante car le déploiement de driver n'est pas nécessaire grâce au mode "direct". A priori, je n'ai pas testé, mais cela devrait être sensationnel sous Androïd. Ces composants sont faciles à lier avec les produits TMS et FastReport. La gestion des Blobs est impeccable avec un simple LiveBinding... avec un traitement complémentaire en ce me concerne puisqu'ils sont encodés en base64.
    • Ensuite le pack TMS. Très sympa aussi. Quelques bugs mais enfin pour ce que ce pack apporte, je ne vais pas me plaindre d'autant que le service technique TMS semble extrêmement réactif.
    • Ces 2 add-on permettent une productivité sensationnelle ! La documentation est au niveau. Pour faire le même travail, j'ai mis moins de temps qu'avec mon Windev qui à ce niveau est très performant. Avec simplement quelques clics, on a déjà un résultat convaincant (aux petits bugs près).
    • Reste FastReport.... C'est un problème sans l'être pour moi... D'abord actuellement, en termes "Delphi" parlant, c'est un blocage dans la chaîne de traitement, une incapacité : on ne peut pas utiliser le générateur d'états. Il existe peut-être des produits de substitution sous FMX mais j'ai à ma disposition une solution "indépendante" avec un add-on Qt qui me permet de contourner le problème en attendant.


    Dans la mesure où je veux utiliser ces produits en production commerciale, le coût de Delphi augmente :
    par poste : Une licence Delphi commerciale [là je ne sais pas encore*] + TMS Pack [150€] + UniDac [299$] + FastReport FMX [299$]. A méditer. Je continue à comparer avec Qt qui fonctionne toujours très bien dans les 3 environnements (Win/Nux/OS X) pour faire le même travail. Mais en terme de productivité, Delphi est nettement supérieur (enfin pour moi). C'est clair.

    * Il me faut une version commerciale me permettant de développer Win/OS X/Androïd. Le FireDac ne me sert à rien. Le FastReport non plus puisque celui d'Embarcadero ne bénéficie pas des mises à jour.
    Images attachées Images attachées  
    Dernière modification par tourlourou ; 04/04/2015 à 14h31.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 663
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 663
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Merci pour ce compte rendu
    Mais en terme de productivité, Delphi est nettement supérieur (enfin pour moi). C'est clair.
    Heureux que tu me confortes
    Une licence Delphi commerciale [là je ne sais pas encore*] +
    il te faut à minima la version Entreprise reste à savoir avec combien d'utilisateur
    TMS Pack [150€]
    c'est vrai qu'il semblent incontournables (reste à choisir quels paquets) entre les paquets VCL,FMX et les autres plus spécifiques la facture peut s'envoler.
    un seul reproche : les styles difficiles à gérer
    UniDac [299$]
    là je n'ai pas de point de comparaison, s'il s'agit uniquement du problème avec MariaDB , je sais que c'est en cours de résolution (quelque soit l'OS)
    FastReport FMX [299$].Le FireDac ne me sert à rien. Le FastReport non plus puisque celui d'Embarcadero ne bénéficie pas des mises à jour.
    à rappeler que FastReport est un outil tiers et que donc c'est comme un produit de démo.
    à essayer Quickreport FMX mais c'est une Beta XE5

    en fait par rapport à Quickreport ou Rave (les 2 générateurs proposés "avant", c'est le seul à proposer une version FMX (je te l'accorde, plus ou moins exploitable avec des champs HTML). N'ayant toujours pas de mac, je serais bien en peine de faire des essais poussés.
    J'ai fait des essais non pas avec HTML mais richedit (là c'est bon coté édition, je ne sais ce qu'il en est coté TMSDBgrid comme dans ton image écran)
    pour HTML par contre j'ai trouvé un moyen détourné : récupérer l'image du Canvas du TMSFMXRichEditor et donc pas imprimer le texte mais l'image.
    Bien sur avec la version de démonstration ou l'embarcadero édition la manip est un peu "complexe" : passer par l'évènement onNext du frxDBDataset puis passer l'image, bref des manips à la Rave . Gageons que cela s'améliorera, l'autre solution consistant à acheter FastReport + Source bien sur pour y mettre son grain de sel (quoique je ne suis pas sur que la version FastReport FMX le propose )

    Serge
    en recherche d’œufs pascals

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

    Je savais bien que je n'aurais pas dû utiliser ce mot de "productivité" sur ce forum.

    Donc, on ne s'emballe pas RAS en VCL... En FMX, le tout est d'être capable de... Parce qu'il y a pas mal de choses que je n'arrive pas à faire... et je ne pense pas qu'à chaque fois ce soit mon incapacité. Exemple, l'impression en FMX. Il y a en effet des choses géniales dans Delphi -y compris dans FMX et c'est pourquoi je ne veux pas lâcher- mais dans certaines circonstances, on perd beaucoup de temps... et parfois au prix de concessions vraiment limites.

    J'ai quand même un peu progressé. Dans mon dernier échange de mail avec FastReport, il m'a bien été précisé que la balise <SPAN> et bien d'autres n'étaient pas gérées. En réalité, il y en a peu de disponibles, mais cela pourrait me suffire... au départ.

    J'arrive à imprimer certaines couleurs avec FastReport FMX

    Gallia est omnis <B>divisa</B> in partes <I><font color=red>tres</I></FONT>, quarum unam incolunt <B><font color=Coral>Belgae</font></B>, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.
    ... avec le nom HTML des fontes (donc celles qui portent un nom). Mais dans ce cas-là, TMS ne comprend plus.

    Gallia est omnis <B>divisa</B> in partes <I><font color=red>tres</I></FONT>, quarum unam incolunt <B><font color= "#FF7F50">Belgae</font></B>, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.

    Visiblement, il y a un problème du traitement de l'Hexa #...

    Je recontacte FastReport.
    Dernière modification par Invité ; 05/04/2015 à 15h42.

  4. #4
    Invité
    Invité(e)
    Par défaut
    OK,

    Cela fonctionne ainsi. FastReport utilise un hexa 8 digits pour ses couleurs. Il faut ajouter le canal alpha. J'ai déjà rencontré ceci avec Androïd. Le problème c'est que TMS fonctionne en 6 digits.
    Bref, il faut modifier à un moment donné la valeur du champ uniBLOB. Ce ne sera pas dans mon uni(Dac)Query qui alimente ma Grid... Eventuellement dans le frxDataBase qui utilise le uniQuery. Un moment, j'ai voulu utiliser le Pasl Script de fxReport... L'éditeur m'en a dissuadé : il est limite inutilisable. Le curseur visible est décalé par rapport au positionnement réel. J'ai fini avec NotePad++ et des copier-coller. Mais surtout, ce langage est pauvre... Equivalent de AnsiReplaceStr ?

    Ceci s'affiche correctement dans TMS
    Gallia est omnis <B>divisa</B> in partes <I><font color="#FF0000">tres</I></font>, quarum unam incolunt <B><font color="#FF00FF">Belgae</font></B>, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.
    Et cela dans FastReport FMX
    Gallia est omnis <B>divisa</B> in partes <I><font color="#FFFF0000">tres</I></font>, quarum unam incolunt <B><font color="#FFFF00FF">Belgae</font></B>, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.
    ...avec évidemment les mêmes couleurs dans les 2 !

    Serge, si tu as un petit moment pour me conseiller au niveau de l'endroit et du code à utiliser pour remplacer le # par #FF, je suis preneur. Merci.
    Dernière modification par Invité ; 05/04/2015 à 21h07.

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 663
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 663
    Billets dans le blog
    65
    Par défaut
    Bonjour,
    Citation Envoyé par selzig Voir le message
    Serge, si tu as un petit moment pour me conseiller au niveau de l'endroit et du code à utiliser pour remplacer le # par #FF, je suis preneur.
    à mon avis le onGetValue d'u frxUserDataset serait l'endroit idéal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TDatas.frxUserDataSet1GetValue(const VarName: string;
      var Value: Variant);
    begin
    if VarName='MONCHAMPHTML' then  Value:=StringReplace(monchamp.asSTring,'#','#FF',[rfReplaceAll]);
    mais s'il s'agit d'un frxDBDataset cet évènement n'est pas prévu , je dirais bien alors : "Quid d'un champ calculé ?", chose que j'aime moins s'il y a beaucoup d'enregistrements récupérés.
    Second réflexe,(avec un version enregistrée,) un petit script onBeforeprint sur le frxMemoview
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure Memo7OnBeforePrint(Sender: TfrxComponent);
    begin
      StringReplace(<frxUserDataSet1."DESIGNATION">,'#','#FF',[rfReplaceAll]);                                                                                    
    end;
    mais là je bute sur une erreur
    identificateur StringReplace non déclaré
    , là il faut fouiller pour pouvoir rajouter system.sysutils au script fastreport . Je n'ai jamais essayé mais la piste est là , ce n'est pas un ajout direct mais plutôt un ajout de fonctions 'utilisateurs' . Bref c'est un peu "lourd" à première vue mais faisable

    NB. Une fonction Replace existait avec FastReport4 mais semble disparue avec la version 5

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 410
    Par défaut
    tu peux aussi regarder du coté de HTML Report Library

Discussions similaires

  1. [Tableaux] Parcourir une chaine html
    Par batama dans le forum Langage
    Réponses: 1
    Dernier message: 30/05/2007, 12h31
  2. Gestion diffusion vidéo HTML
    Par delavega dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 19/02/2007, 21h36
  3. Gestion des chaine
    Par aityahia dans le forum Delphi
    Réponses: 4
    Dernier message: 28/06/2006, 15h58
  4. Débutant : Pb gestion des chaines...
    Par SebRs dans le forum C++
    Réponses: 3
    Dernier message: 29/03/2006, 15h13
  5. [vb excel]Gestion de chaine de caractère et de fichier
    Par shirya dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/10/2005, 09h58

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