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

Mode arborescent

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 : 170
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.

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