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 :

[D10.4 CE] CR HTML dans Grid


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 [D10.4 CE] CR HTML dans Grid
    Bonjour,

    la fin des vacances scolaires approche. Même si je n'enseigne plus depuis la dernière rentrée, je reste "synchronisé". Finies les distractions. Avec Serge, sur ce forum je me suis plusieurs fois interrogé sur la capacité qu'aurait FMX à gérer des Grids affichant du HTML. Voici le résultat de divers essais :

    Nom : dp220830-01.png
Affichages : 173
Taille : 21,4 Ko

    J'ai utilisé des composants du dernier TMS FNC UI pack. Je les connais pas trop mal pour avoir essayé de gérer ces fameuses chaines HTML depuis pas mal de temps avec Lazarus. Le code principal a été réalisé en Lazarus 2.2.0 sous Windows et Lazarus 2.2.2 sous Mint 20.3 cette dernière distribution étant ma préférée sous Nux. J'ai également testé sous Big Sur avec Lazarus 2.2.2. Je l'ai ensuite porté le code sans beaucoup de difficultés sous FMX 10.4 CE que j'ai téléchargé à cette occasion et fait tourner dans une VmWare.

    Une image, cela ne signifie rien, aussi je vous montre la dynamique des Grids :

    Delphi 10.4CE - Windows
    Lazarus 2.2.0 -Windows Lazarus 2.2.2 -Mint Lazarus 2.2.2 -Big Sur

    En FMX, je n'ai pas ancré la TTMSFNCGrid dans la TForm. Je ne me souviens plus . J'ai passé beaucoup de temps là-dessus en XE 7. J'ai mal assimilé la gestion des pourcentages dans les Layouts & Co. Lazarus a un système simplissime, et celui de Qt Creator m'a demandé 20 minutes pour en assimiler les concepts ! J'ai vraiment du mal avec Delphi maintenant.

    Je préviens tout de suite que même si le résultat semble séduisant, il n'est pas utilisable professionnellement ou alors de manière limitée. C'est quand même un bon début !

    Concernant la TTMSFNCGrid, même s'il existe des méthodes automatiques de redimensionnement des cellules, elles sont imparfaites. Parfois la dernière ligne de certaines cellules n'est pas visible. Cela peut avoir des conséquences "sensibles" pour le lecteur (et donc pour le concepteur du programme). Aussi ai-je préféré corriger le problème avec un TTMSFNCHtmlText qui a la particularité de bien afficher les textes HTML y compris leur dernière ligne. De ce fait, il m'a fallu détecter quelles méthodes de la TForm ou de la Grid nécessitaient un nouveau calcul de la hauteur des lignes afin de déclencher au bon moment les calculs pour maintenir un affichage fluide. Je pensais être arrivé à mes fins.

    Hélas, s'il existe un TTMSFNRicEditor qui peut générer du miniHTML, le code généré ne peut pas toujours être lu par les Grids. Notamment, surligner une zone de texte en jaune crée une instruction in-line incompréhensible par la Grid. J'ai alors transformé le in-line en une instruction compréhensible par la cellule : <FONT bgcolor="..."> </FONT> encadrant tout le texte surligné. J'y suis presque arrivé. Cela fonctionne sur une ligne autrement dit, si la cellule est en WordWrap := False. Mais si le WordWrap = True alors la méthode utilisée pour traduire la balise <FONT bgcolor ='"..."> </FONT> est rompue par tout espace sur lequel pourrait s'appliquer -même s'il ne s'applique pas- une potentielle coupure. Ainsi sur les animations, on voit que le texte surligné en jaune du TMSFNCRichEditor n'apparait dans la cellule de la TTMSFNCGrid que sur le premier mot de la zone surlignée. C'est un peu compliqué à formuler, mais cela veut dire qu'il n'est possible de surligner qu'un mot à la fois et pas, par exemple, une zone de 3 mots.

    Autre petit défaut d'affichage que l'on rencontre sur Delphi uniquement : la zone de calcul en bas. C'est brouillon. Il y a parfois -comme sur l'image- une superposition douteuse.

    Enfin que ce soit en Lazarus ou en Delphi, les couleurs du Highlight ou du focus sont fixées mais heureusement peuvent être modifiées ainsi que le Highlight Text, le focus Text, les fontes, ... Donc sur les diverses animations, j'ai utilisé le Highlight de l'OS natif y compris pour FMX où j'ai récupéré les couleurs natives de l'OS ciblé grâce à l’intégration (l'appel) d'une librairie compilée en Lazarus. J'ai utilisé finalement -en les améliorant à cette occasion- les bibliothèques que j'utilise pour détecter ces propriétés natives de chaque OS ciblé et que j'utilise dans mes sources Qt.

    J'ai contacté TMS Software pour cette relation insuffisante entre leurs 2 composants. Cela sera placé dans la todo list pour évaluer si j'ai bien compris, la faisabilité ou/et la rentabilité.

    Pour l'impression, j'ai vu qu'il existait un PDFIum pour Delphi et fpPdf pour Lazarus qui permettent -je suppose pour le premier- et de manière sûre pour le second de générer directement des pdf. Peut-être FMX REport et LazReport (mais j'en doute pour ce dernier) permettent-ils de générer des documents pdf contenant des balises HTML.

    Je ne suis pas allé plus loin. C'est presque ce que j'attendais depuis... 10 ans. Cela n'égale pas Qt. On en reste au miniHTML alors qu'en Qt je peux afficher des images encodées en base 64 dans les cellules des QTableView natives après implantation du code nécessaire évidemment alors que les QTextEdit natifs permettent des "exploits impossibles avec le HTML" pour un développeur en Pascal. Pour l'impression NCReport n'a pas d'équivalent en Pascal.

    Pour être exhaustif, certaines rares propriétés (j'en ai rencontré 2 !) des TTMSFNCGrids figurant sous Lazarus ne sont pas disponibles dans FMX. Sans conséquences à mon niveau. Et pour moi qui suis totalement allergique aux Livebindings et autres styles, il est possible de connecter la TTMSFNCGrid directement à Unidac pour accéder à mes bases de données Rien que cela

    Je suis disponible pour toute précision. Je peux également mettre en ligne une partie des sources utilisées pour cette démo mais pas la bibliothèque qui me permet de récupérer les caractéristiques de l'OS ciblé sous FMX ou Qt. Il existe une version de test du TMS FNC UI Pack qui ne fonctionne pas sur Lazarus. Après avoir acquis ce pack [295 €], je paye chaque année 90 € pour obtenir les mises à jour.

    Cordialement. Gilles
    Dernière modification par Invité ; 30/08/2022 à 21h43.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 658
    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 658
    Billets dans le blog
    65
    Par défaut
    Bonjour Gilles,

    Je note dans ce résultat que je trouve moyen (bogue du bas de grille) la hauteur variable des lignes.
    Comme je l'ai déjà écrit dans mes divers essais pré-vacances (si l'on peut dire) je suis de moins en moins fan des Grilles et ceci de manière générale.
    Pour ce qui est de Render HTML c'est toujours le même problème, la plupart des composants qui permettent l'ajout de HTML restent cantonnés à des tags standards (pas toujours identiques) pudiquement nommés "mini-HTML"

    Peut-être FMX REport permettent-ils de générer des documents pdf contenant des balises HTML.
    Je pense que tu parles de FMX FastReport, oui, il existe une propriété HTML, plus exactement AllowHtmlTags, au minihtml hyper limité

    j'ai vu qu'il existait un PDFium pour Delphi
    La discussion pointée parle des composants Winsoft Pdfium, une sorte de déclaration d'une partie des fonctions de la librairie pdfium. L'objectif était dans le cas de cette discussion d'insérer une image dans un pdf existant, mais, effectivement, à l'aide des fonctions, on pourrait remplir des pages entières
    La liste des tags permis est nettement plus conséquente (voir pdf joint) je suis curieux de voir ce qu'un texte contenant ces balises donnerait dans un PDF généré par fastreport.
    Tu me connais, quand j'ai une idée, je ronge jusqu'à la moelle donc dès que j'aurai un peu de temps ...

    Côté TMS, j'avoue que je m'en éloigne de plus en plus, il serait peut-être temps que je remette un nez dessus.
    D'un autre côté, une grille, c'est un Scrollbox et une frame répétée (ce n'est pas Paul qui dirait le contraire ). Toi qui veux plus ou moins faire un pdf "à la main" et qui ne veut entendre parler de Livebindings , tu pourrais certainement foncer dans cette direction.
    Images attachées Images attachées

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

    le bug FMX est peut-être réglable par la méthode (i.e. la propriété) de scrolling choisie. Je dois dire que je n'ai pas poussé plus loin mon investigation avec Delphi. Son utilisation m'est devenue pénible. Bref, l'intérêt de vérifier avec Delphi était pour moi limité, mais je voulais savoir si c'était possible avec mes vieillies approches. Je pense que ça l'est. En Lazarus, j'en suis certain, pour avoir visité tous les compartiments.

    Si je n'abandonne pas Lazarus, je suis (du verbe suivre) la majorité des développeurs : C++ (avec Qt) pour mes développements multi-OS et j'ai utilisé une autre partie de mon temps de vacances à apprendre Python qui, cerise sur le gâteau, dispose par l'intermédiaire de Qt (pyQt) d'éléments graphiques que j'ai l'habitude d'utiliser.

    Cordialement. Gilles

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 658
    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 658
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Je pense que tu parles de FMX FastReport,...
    La liste des tags permis est nettement plus conséquente (voir pdf joint) je suis curieux de voir ce qu'un texte contenant ces balises donnerait dans un PDF généré par fastreport.
    Tu me connais, quand j'ai une idée, je ronge jusqu'à la moelle
    Essai fait, fastreport inclus le texte point barre qu'il contienne des balises HTML connues adobe ne change rien, cela reste du texte

  5. #5
    Invité
    Invité(e)
    Par défaut
    Je m'étais intéressé à FastReport, il y a "quelque" temps pour un autre sujet (toujours en rapport d'ailleurs avec la gestion des établissements scolaires).

    Mais pour en revenir à l'impression de champs HTML dans FastReport, cela correspondrait aux quelques balises qui m'auraient été nécessaires : <B><U><I> et <font color>. Avec ces 4 balises, tu possèdes un traitement complet sous FMX Mac [Saisie ► TTMSFNCRichEdit - Affichage dans une grille ► TTMSFNCGrid - Impression ► FastReport FMX à condition que la version intégrée à Delphi le permette sinon il faut acheter le produit complet - Génération de PDF ► FastReport FMX]

    Maintenant si tu cibles Windows ou Linux, pour la génération de PDF, je crois qu'il faut chercher autre chose que FastReport et si tu veux fusionner tous les bulletins scolaires d'une classe en un seul pdf, histoire de simplifier l'archivage...

    Dans les faits (i.e. à l'heure de la dématérialisation des documents réclamée et engagée dans l'Administration), je privilégierais toujours actuellement [Saisie HTML + Affichage Colonnes HTML + remplissage colonnes non HTML dans une grille + génération d'un document PDF]. Ensuite, si tu as besoin d'un document papier, tu imprimes le PDF avec un quelconque lecteur (Acrobat Reader, ton navigateur favori, ...). Donc pour moi, la priorité serait la génération du PDF. L'utilité d'un générateur de rapports [FastReport] est surtout une facilité de génération du document avec les bandes. Ce n'est donc qu'un intermédiaire à la génération de PDFs.


    Autre documents :


    Cordialement. Gilles
    Dernière modification par Invité ; 31/08/2022 à 18h08.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 658
    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 658
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par HTML-Dev Voir le message
    Maintenant si tu cibles Windows ou Linux, pour la génération de PDF, je crois qu'il faut chercher autre chose que FastReport et si tu veux fusionner tous les bulletins scolaires d'une classe en un seul pdf, histoire de simplifier l'archivage...
    Bonjour
    avec Fastreport, fusionner les bulletins c'est facile, le html de base évidemment aussi.
    Où le bât blesse, c'est du HTML "hors norme". Je n'ai pas épluché toute la documentation de pdfium mais pour l'instant, je n'ai pas trouvé quoique ce soit concernant l'HTML, la bibliothèque Winsoft Pdfium ne contient que certaines fonctions tel ajout de texte, image, tag (encore que pour les tags c'est complexe)

    Dans les faits (i.e. à l'heure de la dématérialisation des documents réclamée et engagée dans l'Administration), je privilégierais toujours actuellement [Saisie HTML + Affichage Colonnes HTML + remplissage colonnes non HTML dans une grille + génération d'un document PDF].
    Confronté à ton problème, je me serais engagé sur une voie sans HTML (quoique les composants dzHTML pourrait apporter une solution partielle).
    Sachant que l'on m'a fait part, lors de l'audit de mon application GPAO, que "dans les faits" la dématérialisation demandera bientôt
    à ce que l'on fasse de l'EDI, certainement sous forme de JSON ou plus bêtement de CSV (ce que mon logiciel fait déjà en partie) je resterai plutôt dans ce cas sur la non-utilisation de HTML mais ce n'est que mon point de vue d'"informaticien de gestion"

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

    OK je prends note. Mais évidemment, je ne souscris pas.

    Cette installation de Delphi 10.4 CE m'a permis de situer plus précisément l'évolution des capacités du produit. Comme lors de mon dernier essai, je détruis la machine virtuelle qui le contient après avoir "mesuré" la propreté de désinstallation de Delphi.

    Delphi a été installé le 26 sur une VnWare créée le 25/08 :

    Nom : Delphi-220901-01.png
Affichages : 54
Taille : 45,0 Ko

    Le 26, j'ai également ajouté après l'installation de Delphi, les 2 packs de TMS Software nécessaires à l'installation des composants TMSFNC.
    A noter que n'ayant pas choisi le ciblage Android lors de l'installation de Delphi, aucun élément de l'environnement Java n'a été installé automatiquement par l'installateur d'Embarcadero.

    On peut utiliser soit le dés-installateur automatique, soit une procédure manuelle décrite dans le lien présent dans le blog d'Embarcadero.

    Bonne continuation avec Delphi.
    Cordialement. Gilles
    Dernière modification par Invité ; 01/09/2022 à 10h05.

Discussions similaires

  1. [DTD] Tags Html dans XML ---> Etendre la dtd du Xhtml
    Par tipaquo dans le forum Valider
    Réponses: 14
    Dernier message: 19/07/2010, 09h09
  2. HTML dans PHP, PHP dans HTML...
    Par jeremy_chauvel dans le forum Langage
    Réponses: 3
    Dernier message: 24/04/2006, 20h28
  3. Intégration éditeur html dans page asp
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 2
    Dernier message: 06/05/2004, 09h04
  4. Insertion code html dans bdd
    Par jeff37 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/04/2004, 15h03
  5. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29

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