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 :

Delphi + Python : un avis


Sujet :

Composants FMX Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut Delphi + Python : un avis
    Bonjour,

    j'ai reçu plusieurs annonces d'Embarcadero mettant en avant les liaisons possibles entre Python et Firemonkey. Dernièement encore, ce matin : version en ligne.

    J'avais commencé hier un message dans le blog Firemonkey intitulé "Encore ronchon". Je ne l'ai pas publié. Je suppose que ma frustration ne concerne que moi et mes exentriques projets. J'essaye d'améliorer un système d'évaluation de la progression pédagogique en mathématiques de chaque élève avec un système de remédiation en cas de difficulté, sachant que je privilégie toujours la feuille, le stylo et surtout l'Enseignant comme ressource tout en sollicitant au maximum l'autonomie de l'élève. C'est un vieux projet de 15 ans commencé uniquement en mode papier, le suivi étant assuré en back-end (informatiquement) à l'époque.

    Donc je cherchais un moyen d'afficher la progression d'un élève. En développement Web, j'ai abandonné le développement propriétaire WebDev de PC SOFT pour utiliser des approches non propriétaires. J'utilise par exemple pour que chacun puisse visualiser sa position par rapport aux objectifs opérationnels du programme des bibliothèques comme arborjs.

    Je me heurte en permanence aux discours d'Embarcadero et la réalité de la mise en œuvre dans la réalité d'un projet.

    Dans un premier temps, j'ai regardé comment intégrer un moteur d'IA dans mon projet avec FMX. Facile semble-t-il : TensorFlow n'est pas pour moi le moteur idéal [les moteurs d'IA sont encore très spécialisés]. Il n'y a qu'a regarder ... Par contre l’adaptation est beaucoup plus délicate. A croire que l’exemple a été choisi pour répondre à la propagande "facilitaire". C'est possible, regardez... Oui effectivement sur cet exemple. Ce qui ne rend pas du tout le portage de TensorFlow dans une approche générale. Sinon aucune bibliothèque native ne semble disponible en Delphi.

    Maintenant en C++, on trouve d'autres librairies que TEnsorflow. Et il y a C++ Builder, donc sauvés ! Sauf que C++ Builder n'admet pas les mêmes cibles que Firemonkey Delphi... C'est bête. Depuis le temps que l'on attend.

    Pour en revenir à mon affichage, j'ai tenté d’incorporer arborjs dans un TWebBrowser. Cela ne fonctionne pas. Certainement un problème d’incorporation des bibliothèques Javascript nécessaires dont jQuery. C'est du lourd effectivement. Existe-t-il une implantation native de "graph network visualization" en Delphi ? Que nenni ! Évidemment on en trouve en C++, en Java et... en Python. On trouve également des moteurs d'IA en Python.

    Et cela rejoint la pub que je reçois. Delphi est-il tellement limité qu'il faille utiliser Python pour obtenir quelque chose ? Mais dans ce cas-là, pourquoi ne pas utiliser Python directement. Je comprends la même démarche en Qt avec Python. On récupère le GUI Qt qui à mon sens est d'excellente facture aussi bien qualitativement que quantitativement.
    Alors Delphi, son livebindings et Python cela présente quel intérêt au juste quand on connaît la complexité de mise en œuvre de l'interface GUI proposé par Delphi ? J'aimerais avoir un éclairage objectif là-dessus.

    Merci. Cordialement. Gilles

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Hello,

    alors, en Java et en C++ ou trouve TOUT, du bon et du moins bon, mais je pense qu'aucun sujet n'a jamais été traité dans un de ces deux langages.

    en Delphi on trouve beaucoup de choses, mais pas tout, il y a des domaines qui ne sont pas explorés par les développeurs Delphi - quand bien même c'est possible.

    il y a parfois des choses surprenantes, comme une implémentation native de OpenSSL sous Delphi, ou le portable de Quake ... des projets qui montrent que c'est est possible....sauf que oui, il est sans doute préférable d'utiliser OpenSSL sous forme de DLL mis à jour régulièrement par une floppée de développeurs que la version Delphi aussi chiadée soit-elle, et utilisée par sans doute très peu de gens (mais là il est question de sécurité donc c'est particulier).

    Pourquoi utiliser Python sous Delphi ? personnellement je ne le ferais pas...je n'aime pas Python mais une des raisons serait d'offrir à un utilisateur la possibilité de créer un plugin pour un logiciel dans un langage plus populaire que Delphi....et d'utiliser éventuellement les bibliothèques Python existantes dans ce plugin...

    Pourquoi utiliser TWebView ? pour exploiter HTML/CSS/JS dans une application Delphi...c'est un choix, notez que la dernière version de Delphi a remplacé le HTML de la page d'accueil par des composants natifs car au final, c'était pas plus difficile de faire un rendu sympa sous Delphi que de faire fonctionner JS avec Delphi

    Bref, je pense que ces bindings sont là pour séduire des développeurs qui aiment ces technologies en disant, avec Delphi vous avez la porte ouverte...je ne suis pas sûr que ce soit payant, mais est-ce dérangeant que cela existe ?

    Après, je l'ai déjà expliqué à plusieurs reprises, dans mon activité, j'utilise plus volontiers PHP pour faire du Web car mes sites Web sont à 80% en Javascript...les 20% qui restent sont plus simples à faire en PHP sur un hébergement OVH que de monter une VM dédiée pour installer une appli Delphi....si j'avais le temps je passerais sans doute un peu de temps sur Pas2Js histoire de remettre du Delphi dans mes développements Web voir un truc qui produise le code PHP côté serveur... ce sont essentiellement des requêtes SQL qui retournent du JSON...quelque chose qu'on doit pouvoir automatiser.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Rédacteur/Modérateur

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

    Comme d'habitude un peu de mélange et des bindings qui ne passent pas
    Côté Delphi+Python je n'ai touché que la partie utilisation de Python dans Delphi et non utilisation de Delphi pour faire des Interfaces utilisateur pour Python et encore n'ai-je fait qu'explorer deux ou trois bibliothèques. Expérience sympa, mais courte, qui m'a laissé un peu sur l'expectative
    premier test
    Après je me suis "amusé" avec d'autres bibliothèques.
    Je suis resté perplexe sur la récupération de traitement d'images via Python

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par Paul TOTH Voir le message
    [...]Après, je l'ai déjà expliqué à plusieurs reprises, dans mon activité, j'utilise plus volontiers PHP pour faire du Web car mes sites Web sont à 80% en Javascript...les 20% qui restent sont plus simples à faire en PHP sur un hébergement
    Oui, j'en suis arrivé à cette même conclusion.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Comme d'habitude un peu de mélange et des bindings qui ne passent pas
    Oui mélange est bien le terme... pour les bindings,je passe

    Toutes ces "complications" et ces démonstrations "aguicheuses mais limitées dans la réalité" me lassent. Tu fais une étude et tu vérifies point par point si oui ou non c'est réalisable en Delphi, si possible en natif et si tel n'est pas le cas sans "limiter" ce qu'est capable de faire la bibliothèque écrite dans un autre langage et appelée par le code Delphi.

    Il ne me semble pas sublimer le passé mais quand Delphi ( <=7) était mon langage de développement je n'ai jamais butté sur un développement, sur une idée, un "truc à ma sauce". C'était pour moi LE langage généraliste et à tout faire.

    Avec Firemonkey, je rencontre trop d'impasses, trop de solutiosn de contournement. On va bientôt m'expliquer que pour faire de l'IA à partir de Delphi, il faut que j'intègre des bibliothèques Python ! Et comme Paul je ne suis pas adepte de Python... et si je devais "reprendre" mon projet, Python a lui seul me suffirait.

    J'assimile maintenant le Pascal à un langage de niche. Peut-être l'a-t-il toujours été ? Mais le C++ n'est pas un langage de niche alors comment peut-on m'expliquer que les cibles de compilation atteintes par C++ Builder soient limitées par rapport à celles de Delphi Firemonkey ? Et autre question, l'énorme socle de librairies développées en C++ sont-elles intégrables dans C++ Builder ? Ciompte tenu que ce dernier impose -parce que dans les faits c'est une quasi obligation- d'utiliser le LiveBindings et autres bizarreries, je n'ai même pas de certitudes à ce niveau. En attendant même si ce n'est pas raisonnable mais purement psycho-affectif, je n'ai pas l'intention d'abandonner le Pascal... même si j'estime que la solution propriétaire actuelle n'est pas à la hauteur.

    PS : j'ai commencé à faire un composant FMX pour régler ce problème de visualisation, système qui doit optimiser (limiter) les croisements de liens... Il me semble que c'est jouable. Mais combien de temps cela va me prendre ? J'ai basculé vers Qt en production dans mon entreprise parce que Lazarus était trop chronophage au niveau de la réalisation de composants adaptés à mes besoins. A la retraite maintenant, j'ai du temps il est vrai. Alors un pseudo-moteur d'IA (c'est en réalité un mixe de proba et de stats), un composant de visualisation... En lazarus j'avais participé sur ce forum à la création de composants, il y a très longtemps avec quelques passionnés... Cela existe encore de nos jours... en FMX ?

    Cordialement. Gilles
    Dernière modification par Invité ; 06/06/2022 à 15h31.

  6. #6
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    tu compares Delphi du jour avec Delphi 7...est-ce que tes développements n'ont pas évolués entre deux ? à l'époque de D7 je faisais 100% de Windows natif en client "lourd", aujourd'hui j'ai bcp plus de webservice ou d'interaction avec le web en général...mais Delphi continue à répondre à mes attentes.

    j'ai aussi 90% des mes développement sous VCL...FMX est vraiment à la marge

    et pour ajouter un Binding, il y a un projet Skia4Delphi qui propose de remplacer le moteur graphique de FMX (disponible aussi pour VCL) par Skia de Google...ceux qui bossent dessus sont très enthousiastes...personnellement j'aurais préféré une initiative de réécriture de Skia en Pascal
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    tu compares Delphi du jour avec Delphi 7...est-ce que tes développements n'ont pas évolués entre deux ?
    C'est là le problème. Effectivement la demande des utilisateurs a évolué. Je prends toujours cet exemple : en delphi 7, je n'avais pas besoin de gérer le texte enrichi. Mais cela fait quand même "quelques" années que mes Collègues m'ont réclamé la gestion du texte enrichi dans les bulletins scolaires. Mon premier gestionnaire a été réalisé en Turbo-Pascal ! Va falloir informer Embarcadero que l'on a changé d'époque. Pas facile de trouver une machine à écrire maintenant. Pourtant, ils en sont restés là : TMemo, TEdit, TLabel, TGrid gèrent-ils nativement le texte enrichi ? TMS Software si on aime... Je ne parle pas de l'impression avec le mini HTML de FastReport et pire, pour moi, l'incapacité de générer nativement du pdf dans toutes les cibles desktop. Allez-voir Qt pour avoir un aperçu de la différence ! Il faut quand même pas pousser ! Ils font quoi les programmeurs d'Embarcadero ? En terme de générateur de rapports, actuellement c'est Fastreport un truc antédiluvien comparé à NCReport. Peut-être Quickreport est-il plus performant ?

    Quant à mac et linux, c'est quoi le problème pour C++ Builder ? Il faut dire que la doc m'est incompréhensible :
    Nom : delphi220606.png
Affichages : 496
Taille : 70,7 KoSource : RAD Studio 11.1 Spécifications techniques

    Pour Builder, IHM FireMonkey est disponible pour macOS, avec un add-on tiers pour Linux, mais la compilation est impossible en C++ pour ces 2 cibles. Si je comprends bien, cela ne me permet pas de réaliser des programmes macOS ou Linux avec C++ Builder. PAr contre, on observe qu'en ce qui concerne le mobile RAD 11 est "complet". Dans la réalité, j'estime que Delphi a totalement raté son ciblage Linux et mac OS. Donc, on a VCL pour Windows et on a Firemonkey pour le mobile. On est très loin de Qt qui gére Windows, mac OS, Linux, Androïd et iOS, et d'autres) et très proche des produits PC SOFT Windev pour Windows et Windev Mobile pour Androïd et iOS,.. Et PC SOFT commence à développer nativement des outils pour l'IA et des outils de visualisation. Et Delphi ?

    Bon je vais aller un petit peu coder

    Cordialement. Gilles
    Dernière modification par Invité ; 06/06/2022 à 15h40.

  8. #8
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Hello

    Pour les composants de saisie je suis d'accord avec toi : ne rien avoir pour faire de l'enrichi en multiplateforme (au moins sur Windows / Mac / Linux) c'est un tantinet gonflant. Mais il y a des alternatives (toutes payantes). Faut dire aussi que la version VCL est assez limitée.

    Pour l'affichage on trouve des trucs exploitables sur GitHub (comme le composant DzHTML qui n'affiche pas du HTML mais un truc avec un système de balises à lui) et plein de choses payantes. Skia4Delphi propose un champ texte amélioré. Pour afficher du HTML, il y a le TWebBrowser (quand on n'a pas de soucis de configuration) mais c'est l'artillerie lourde.

    Pour saisir et afficher du HTML avec une bonne prise en charge, la seule librairie que j'ai pu tester qui soit efficace c'est https://delphihtmlcomponents.com (payant, mais version d'évaluation dispo).

    Concernant C++Builder, on ne peux pas dire qu'il soit complet sur mobiles : sans Android 64, pas de publication d'applications chez Google, donc le grand public ne peut plus être ciblé depuis quelques années. Les compilateurs C++ et Delphi ne sont pas les mêmes. Ils tardent à finir de faire évoluer les librairies C++ pour coller aux dernières évolutions du langage et de FMX pour fournir quelque chose d'exploitable. Peut-être que LLVM sera la solution dans les mois qui viennent ? En tout cas on ne peut pas vanter les mérites de C++Builder en dehors des plateformes desktop (essentiellement Windows). Embarcadero l'assume en ne communiquant quasi que sur Windows et les évolutions du langage, de l'éditeur de code et de la compatibilité avec des librairies open source prisées. A ce titre normalement ce qui se fait en C++ doit passer avec C++Builder.

    Quant à WinDev et PCSoft, même si beaucoup comparent les deux, je ne suis pas d'accord. PC Soft et Embarcadero n'ont pas les mêmes contraintes historiques, les mêmes approches ni la même vision.

    PC Soft n'a pas de revendeurs. Tout l'argent encaissé pour les licences, la formation, le support va globalement dans la pub et le développement des outils. La base de WinDev, WebDev et WinDev Mobile n'évolue pas énormément. Ils ajoutent des composants métier parce que c'est la seule chose qu'ils fassent pour faire évoluer le produit et vendre leur version annuelle à plusieurs centaines de nouveautés et améliorations (incluant le nombre de clics pour afficher un truc ou un changement de couleur). WinDev n'a pas d'écosystème (ou en tout cas je ne le connais pas).
    Le côté multiplateformes et multi langages généré chez eux est bancal : une partie s'appuie sur un runtime payant, l'autre sur des générations dans d'autres langages qui ne supportent pas toutes les fonctionnalités annoncées. Côté bogues, y a aussi pas mal de choses à dire, mais ils sont réactifs au niveau du support et ceux qui payent les mises à jour ont des correctifs.

    Embarcadero a hérité d'un fonctionnement avec des revendeurs et un découpage du monde par régions. Truc typique des entreprises anglophones. Difficile de revenir en arrière si tant est que quelqu'un le décide un jour.
    Ils développent des outils de développement et fournissent ce qu'il faut pour créer avec le minimum vital pour que ça fonctionne dans la plupart des projets de leurs clients. Ils nous donnent ce qu'il faut pour nous laisser entièrement libres d'en faire ce qu'on veut.
    Ils partent sur un réseau de distributeurs, ce qui réduit le cash disponible pour l'outil et un écosystème qui compense pour l'absence de trucs sexys fournis avec la base du produit. Ils achètent parfois des licences de produits tiers (FireDAC et FMX Linux sont de bons exemples) pour les inclure au produit.
    Delphi (et C++Builder par ricochet) bénéficie d'un écosystème impressionnant, réparti entre projets libres, open source et commerciaux. A ma connaissance il n'y a que dans le web où il y a autant de choses disponibles, créées et mises à disposition par la communauté de développeurs.

    Alors forcément, on ne trouve pas tout, ni comme on le voudrait, puisque chacun développe ce dont il a besoin à sa façon ou ça passe par des entreprises qui visent la vente, donc se focalisent sur ce qui a un avenir commercial.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    [...]et pour ajouter un Binding, il y a un projet Skia4Delphi qui propose de remplacer le moteur graphique de FMX (disponible aussi pour VCL) par Skia de Google...ceux qui bossent dessus sont très enthousiastes...personnellement j'aurais préféré une initiative de réécriture de Skia en Pascal
    Très intéressant ! En plus les exemples de code me parlent. A la "mimine" A l'ancienne quoi. Merci pour l'info !

  10. #10
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Citation Envoyé par HTML-Dev Voir le message
    En plus les exemples de code me parlent. A la "mimine" A l'ancienne quoi. Merci pour l'info !
    Ca, ça fonctionne aussi dans FMX de base. JDCJDR

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par pprem Voir le message
    Ca, ça fonctionne aussi dans FMX de base. JDCJDR
    Cest quoi FMX de base [liveBindings ?] Je peux l'avoir sans base ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par pprem Voir le message
    Pour les composants de saisie je suis d'accord avec toi : ne rien avoir pour faire de l'enrichi en multiplateforme (au moins sur Windows / Mac / Linux) c'est un tantinet gonflant. Mais il y a des alternatives (toutes payantes). Faut dire aussi que la version VCL est assez limitée.
    Ouais, c'est en natif chez Qt ! Et ce n'est pas récent. Les composants de base possèdent cette fonction et pour les "Grids" on peut l'implanter. Bref c'est navrant parce que FMX est un produit jeune...

    Citation Envoyé par pprem Voir le message
    Pour l'affichage on trouve des trucs exploitables sur GitHub (comme le composant DzHTML qui n'affiche pas du HTML mais un truc avec un système de balises à lui) et plein de choses payantes. Skia4Delphi propose un champ texte amélioré. Pour afficher du HTML, il y a le TWebBrowser (quand on n'a pas de soucis de configuration) mais c'est l'artillerie lourde.
    Échec et mat pour moi avec mon arborjs. Par contre, je viens de le porter -pour vérifier- en Webdev 27 et en Windev 27. C'est un comble !


    Citation Envoyé par pprem Voir le message
    Concernant C++Builder, on ne peux pas dire qu'il soit complet sur mobiles : sans Android 64, pas de publication d'applications chez Google, donc le grand public ne peut plus être ciblé depuis quelques années. Les compilateurs C++ et Delphi ne sont pas les mêmes. Ils tardent à finir de faire évoluer les librairies C++ pour coller aux dernières évolutions du langage et de FMX pour fournir quelque chose d'exploitable. Peut-être que LLVM sera la solution dans les mois qui viennent ? En tout cas on ne peut pas vanter les mérites de C++Builder en dehors des plateformes desktop (essentiellement Windows). Embarcadero l'assume en ne communiquant quasi que sur Windows et les évolutions du langage, de l'éditeur de code et de la compatibilité avec des librairies open source prisées. A ce titre normalement ce qui se fait en C++ doit passer avec C++Builder.
    En desktop, "essentiellement Windows" ou exclusivement windows ? D'après ce que je comprends ni la compilation Linux ni la compilation mac OS ne sont disponibles. Donc me concernant l'intérêt est quasi nul.

    Citation Envoyé par pprem Voir le message
    Quant à WinDev et PC Soft, même si beaucoup comparent les deux, je ne suis pas d'accord. PC Soft et Embarcadero n'ont pas les mêmes contraintes historiques, les mêmes approches ni la même vision. PC Soft n'a pas de revendeurs. Tout l'argent encaissé pour les licences, la formation, le support va globalement dans la pub et le développement des outils. La base de WinDev, WebDev et WinDev Mobile n'évolue pas énormément.
    C'est très réducteur. Historiquement, ils sont a peu près aussi anciens mais depuis le temps, à quelques années près, la date d'apparition n'est pas significative. Ils ont les mêmes cibles dans ma réalité ! Pour Windev, Windows (un petit Linux, un petit mac OS par Java). Donc pas de multi OS réellement. Il faut du temps pour maitriser leurs 3 produits mais franchement cela fonctionne bien, y compris la gestion du texte enrichi, la production de pdf notamment avec un bon générateur d'états (reports) intégré. Évidemment, il faut un peu de temps avant qu'un nouveau "composant" ne soit fiable, 2 voire 3 versions. Leur publicité . Le service technique a fait énormément de progrès. Il suffit de quitter le RAD et c'est réellement productif. Malheureusement Windev n'est pas ce que je cherche parce que j'ai besoin de développer avec un même niveau d'exigence mes programmes dans les 3 OS. Mais je fais le maquettage de l'IHM de certaines "Form" avec... histoire de réaliser une simulation "dynamique". Tu vas me dire que Firemonkey cible Linux et mac OS. C'est un avantage, certes. Mais comme il ne permet pas de disposer des éléments que je souhaite y intégrer que ce soit au niveau du texte enrichi, de la génération de pdf dans les 3 OS, de l'IA, de la visualisation, au final, il perd son avantage. Les 2 produits pour le résultat que j'en attends sont insuffisants. Pour le reste, même combat pour Embarcadero et PC SOFT et donc même orientation : un IDE purement Windows. La messe est dite contrairement à Qt, Lazrus, Java Python. C'est rassurant de voir qu'ils sont capables de porter leur IDE sur tous les OS desktop cibles. Sans aucune préférence. Rassurant et pérenne. La cross-compilation de desktop à desktop ? Je ne suis pas convaincu du tout. En plus cela manque de souplesse.

    Citation Envoyé par pprem Voir le message
    ...fournissent ce qu'il faut pour créer avec le minimum vital pour que ça fonctionne dans la plupart des projets de leurs clients.
    Ben je ne suis pas dans la "plupart"

    Citation Envoyé par pprem Voir le message
    Ils nous donnent ce qu'il faut pour nous laisser entièrement libres d'en faire ce qu'on veut.
    J'aimerais bien croire ce discours. En attendant, c'est une pure vue de l'esprit ? Un vœu pieux ? L'implantation du Livebindinds démontre le contraire. J'ouvre n'importe lequel de mes fichiers Qt ou Lazarus avec un simple notepad, et le corrige ! Tu vas me dire que le LiveBindings peut s'écrire à la main ? Facile donc !

    Citation Envoyé par pprem Voir le message
    Ils achètent parfois des licences de produits tiers (FireDAC et FMX Linux sont de bons exemples) pour les inclure au produit.
    Ils feraient mieux de se concentrer sur leur métier de base : la programmation. Chaque intégration nécessite des rafistolages... et à la fin, l'ensemble manque de cohérence et de "practicité" au point que j'ai eu l'impression de devenir un chef... cuisinier. On applique, on copie des recettes sans comprendre.. Un soupçon de vaudou peut-être ?

    Citation Envoyé par pprem Voir le message
    Delphi (et C++Builder par ricochet) bénéficie d'un écosystème impressionnant, réparti entre projets libres, open source et commerciaux. A ma connaissance il n'y a que dans le web où il y a autant de choses disponibles, créées et mises à disposition par la communauté de développeurs.
    Tu oublies dans les langages compilés Qt, Lazarus et dans les autres Java, Python.

    Citation Envoyé par pprem Voir le message
    Alors forcément, on ne trouve pas tout, ni comme on le voudrait, puisque chacun développe ce dont il a besoin à sa façon ou ça passe par des entreprises qui visent la vente, donc se focalisent sur ce qui a un avenir commercial.
    L'IA a un certain avenir, la visualisation des données produites aussi... Si je dois utiliser des bibliothèques tierces, pourquoi pas... mais du solide et du simple, de l'actuel et pas du "mini". Sinon -sans jouer les oracles- ce sera funeste... et permettra certainement l'émergence d'une autre plate forme de développement en Pascal.

    A bientôt. Gilles
    --------
    PS : une petite anecdote. Je possède une licence PureBasic. Concernant la reconnaissance de caractères, un truc faisable en Delphi (cf la pub euh je veux dire l'article technique évoqué ci-dessus et très justement commenté à mon avis par Gouyon), voici ce que l'on faisait il y a 5 ans. PureBasic est un produit de niche, propulsé par un passionné, doté d'un "IDE" multiplateforme... C'est une licence à vie à un prix modique. Tu vois il ne s'agit pas d'un problème de cashflow de la société éditrice. Le spirit fighting est ce qui manque à Embarcadero. Borland le possédait. Il suffit simplement de la volonté d'un dirigeant, d'un créateur et d'une communauté. Cela laisse perplexe.
    Dernière modification par Invité ; 06/06/2022 à 19h11.

  13. #13
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    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 595
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par HTML-Dev Voir le message
    PS : A la retraite maintenant, j'ai du temps il est vrai.
    Moi - pas encore, un an ou plus si les choses n'avancent pas.
    Citation Envoyé par HTML-Dev Voir le message
    forum à la création de composants, il y a très longtemps avec quelques passionnés... Cela existe encore de nos jours... en FMX ?
    Du moins je tente d'en faire avec quelques modestes succès (tu trouveras un pdf dans ce dépôt). Gouyon aussi a fait quelques essais. Je suis prêt à ajouter mon expérience à un groupe même hors forum (dépôt git par exemple) dans la limite de mon temps

  14. #14
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    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 595
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    j'ai aussi 90% des mes développement sous VCL...FMX est vraiment à la marge
    J'ai choisi la voie inverse pour toutes mes nouvelles applications

    Citation Envoyé par Paul TOTH Voir le message
    et pour ajouter un Binding, il y a un projet Skia4Delphi qui propose de remplacer le moteur graphique de FMX (disponible aussi pour VCL) par Skia de Google...ceux qui bossent dessus sont très enthousiastes
    une bibliothèque tierce, comme il y en a déjà beaucoup, mais, effectivement, intéressante en tout cas niveau graphique elle corrige certains bugs (pas toujours)

    personnellement j'aurais préféré une initiative de réécriture de Skia en Pascal
    Moi j'eusse préféré que SKIA soit intégré "nativement" dans Delphi

  15. #15
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    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 595
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par HTML-Dev Voir le message
    C'est quoi FMX de base [liveBindings ?] Je peux l'avoir sans base ?
    Arrête de te faire une fixette sur LiveBindings, cela n'a rien à voir
    Citation Envoyé par HTML-Dev Voir le message
    Tu vas me dire que le LiveBindings peut s'écrire à la main ?
    Oui, c'est possible, je l'ai d'ailleurs démontré je ne sais plus dans quel tuto ou billet blog suite à ma présentation (un peu ) à Paris
    Tiens, d'ailleurs, cela me donne une idée de TodoAlaRetraite : éplucher les .fmx et faire des Livebindings une procédure "à l'ancienne" intégrable à l'unité .pas

  16. #16
    Invité
    Invité(e)
    Par défaut
    Hello,
    Citation Envoyé par SergioMaster Voir le message
    Arrête de te faire une fixette sur LiveBindings, cela n'a rien à voir

    Oui, c'est possible, je l'ai d'ailleurs démontré je ne sais plus dans quel tuto ou billet blog suite à ma présentation (un peu ) à Paris
    Tiens, d'ailleurs, cela me donne une idée de TodoAlaRetraite : éplucher les .fmx et faire des Livebindings une procédure "à l'ancienne" intégrable à l'unité .pas
    Il y a quelque chose que je n'ai pas saisi : tu es capable avec Delphi de faire un programme GUI (de gestion par exemple) sans utiliser de LiveBindings ? Moi pas. Tous tes exemples utilisent le LiveBindings. C'est un effet de style, un choix délibéré ? Ou une obligation éventuellement contournable par un code délirant pour s'en passer. Tu te souviens comment tu utilisais les BDD avec Delphi 7 ? Ce n'est pas une fixette mais une pratique de développement incontournable avec Delphi. Et à partir de ce moment-là

    Je me demande comment un jeune programmeur biberonné au LiveBindings peut lui échapper ensuite et migrer vers un autre langage. J'ai pas eu ce problème pour migrer vers Qt. Je n'ai pas eu le temps de me reconfigurer "LiveBindings". Je juge cette inféodation nuisible et improductive quant aux problèmes et aux insuffisances rencontrés. Vivement qu'on tourne la page et qu'on dispose d'un produit commercial ouvert, solide, réellement généraliste, moderne... Bref un Qt en Pascal Pas de chance pour les Pascaliens qui ont le choix entre un produit opensource qui a le mérite d'exister, qui dispose d'un IDE multi OS, mais qui est dépassé faute de moyens quand on le compare à Qt, un produit commercial composé de bidouilles, d'add-on ou d'add-in, un puzzle commercial bling-bling au final beaucoup moins performant qu'un Qt.

    Bon j'arrête-là. Mais je ne comprends pas vos positions. Vous êtes réellement satisfaits de cet IDE ? de la manière de programmer qu'il impose... Tout cela au motif qu'il est plus ou moins multi-cibles, qu'il dispose d'un moteur graphique de qualité -c'est indéniable d'autant que c'est une intégration- mais vide de composants moderne [ie ceux du défunt Delphi 7 tels qu'ils étaient et encore souvent avec des évènements en moins, voire des méthodes en moins, voire des propriétés en moins] ? Si tel est le cas, rien ne changera
    Dernière modification par Invité ; 07/06/2022 à 09h54.

  17. #17
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    pour en revenir à LiveBinding, ce n'est pas magique...la VCL et FMX sont blindés de code permettant à LiveBinding de fonctionner...j'ai d'ailleurs fait une version de la VCL avec des {$IFDEF REMOVE_LIVE_BINDINGS} et {$IFDEF REMOVE_THEMES} pour alléger le code

    pour LB, on a par exemple ce code dans KeyPress des Edit qui va informer les "Observers" qu'une touche est appuyée...ce code ne sert qu'à LiveBindings (mais on pourrait le réexploiter pour autre chose). et on a ce genre de chose sur un peu tous les évènements des composants...
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    procedure TCustomEdit.KeyPress(var Key: Char);
    var
      LEditLink: Boolean;
    begin
      inherited;
      LEditLink := Observers.IsObserving(TObserverMapping.EditLinkID);
      if LEditLink and (Key >= #32) and
        not TLinkObservers.EditLinkIsValidChar(Observers, Key) then
      begin
        MessageBeep(0);
        Key := #0;
      end;
      case Key of
        ^H, ^V, ^X, #32..High(Char):
          if LEditLink and not TLinkObservers.EditLinkEdit(Observers) then
            Key := #0
          else
          begin
            if LEditLink then TLinkObservers.EditLinkModified(Observers);
            if Observers.IsObserving(TObserverMapping.ControlValueID) then
               TLinkObservers.ControlValueModified(Observers);
          end;
        #27:
          begin
            if LEditLink then
            begin
              if TLinkObservers.EditLinkIsEditing(Observers) then
              begin
                TLinkObservers.EditLinkReset(Observers);
                SelectAll;
              end;
              Key := #0;
            end;
          end;
        Char(VK_RETURN):
          begin
            if Observers.IsObserving(TObserverMapping.EditLinkID) then
              if TLinkObservers.EditLinkIsEditing(Observers) then
                if TLinkObservers.EditLinkTrackUpdate(Observers) then
                  Key := #0; // No beep if tracking (note that descendent classes like TMemo will not get VK_RETURN)
            if Observers.IsObserving(TObserverMapping.ControlValueID) then
            begin
              if TLinkObservers.ControlValueTrackUpdate(Observers) then
                Key := #0;
            end;
          end;
      end;
    end;
    l'approche TDBEdit me semble plus simple et naturelle...même si elle impose de rendre les composants DBAware

    et le code est similaire ... en plus simple

    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
    21
    22
    23
    24
    25
    26
    27
     
    procedure TDBEdit.KeyPress(var Key: Char);
    begin
      inherited KeyPress(Key);
      if (Key >= #32) and (FDataLink.Field <> nil) and
        not FDataLink.Field.IsValidChar(Key) then
      begin
        MessageBeep(0);
        Key := #0;
      end;
      case Key of
        ^H, ^V, ^X, #32..High(Char):
          if not FDataLink.Edit then
            Key := #0;
        #27:
          begin
            FDataLink.Reset;
            SelectAll;
            Key := #0;
          end;
        ^A:
          begin
            SelectAll;
            Key := #0;
          end;
      end;
    end;
    Pour la gestion des Themes c'est un peu pareil, pour chaque composant stylé on a ce genre de chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class constructor TCustomEdit.Create;
    begin
      TCustomStyleEngine.RegisterStyleHook(TCustomEdit, TEditStyleHook);
    end;
    avec une class "Hook" qui vient prendre en charge le rendu par thème
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  18. #18
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    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 595
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par HTML-Dev Voir le message
    Il y a quelque chose que je n'ai pas saisi : tu es capable avec Delphi de faire un programme GUI de gestion par exemple sans utiliser de LiveBindings ?
    Oui, un peu plus long à écrire mais oui
    Tous tes exemples utilisent le LiveBindings. C'est un effet de style, un choix délibéré ?
    un choix délibéré, pour montrer les Livebindings
    Ou une obligation éventuellement contournable par un code délirant pour s'en passer.
    pas "délirant", juste plus long à écrire (ce que ma philosohie de scaphandrier m'évite de faire. Le principe, utilise la poussée d'Archimède quand tu en as la possibilité

    Tu te souviens comment tu utilisais les BDD avec Delphi 7 ?
    je maintiens encore des programmes D3.

    Quelle est la différence entre un composant DB et un composant FMX avec LiveBindings
    - Dans le DBxxxxx il y a un Datasource utilisé
    - Dans le composant FMX cela passe par un BindSource (qui fait, en gros, la même chose de le Datasource) et qui permet à RTTI (car oui Livebindings n'est que du RTTI) de faire le boulot

    Et à partir de ce moment-là je ne suis plus d'accord avec ta liste car avec VCL c'est la même chose


    ce n'est pas une fixette.
    Oh que si

  19. #19
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    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 595
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    pour en revenir à LiveBinding, ce n'est pas magique...la VCL et FMX sont blindés de code permettant à LiveBinding de fonctionner...j'ai d'ailleurs fait une version de la VCL avec des {$IFDEF REMOVE_LIVE_BINDINGS} et {$IFDEF REMOVE_THEMES} pour alléger le code
    Intéressant ça, et tu vires RTTI ?

  20. #20
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    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 595
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par pprem Voir le message
    Pour l'affichage, on trouve des trucs exploitables sur GitHub (comme le composant DzHTML qui n'affiche pas du HTML mais un truc avec un système de balises à lui) et plein de choses payantes. Skia4Delphi propose un champ texte amélioré. Pour afficher du HTML, il y a le TWebBrowser (quand on n'a pas de soucis de configuration) mais c'est l'artillerie lourde.
    Pour saisir et afficher du HTML avec une bonne prise en charge, la seule librairie que j'ai pu tester qui soit efficace c'est https://delphihtmlcomponents.com (payant, mais version d'évaluation
    Ce week-end, je me suis amusé avec DzHTML pour écrire un programme censé être mieux (pas difficile à mon goût) que le programme Todo de Microsoft.

    À ce propos, je me demandais comment extraire les todos des sources d'un projet entier, mais, j'entrevois la réponse avec les expressions régulières, futur todo dans mon programme Todo
    ça plus l'ajout de fichier seront mes étapes du WE prochain. Prévu initialement hier, je ne vous raconte pas la galère depuis dimanche après midi quand j'ai voulu mixer une version Lite (SQLite) et une version "collaborative" (Firebird) je m'en suis sorti (de justesse et mal) après même apperçu d'un problème de copier-coller d'un composant FDSQLUpdate

    Pour ce que j'avais comme idée en tête DZHTML me semblait suffisant
    Nom : Capture.PNG
Affichages : 439
Taille : 17,9 Ko
    Dommage que l'auteur ne ce soit pas davantage attaché aux balises standard
    {DZHtml tags
    <A[:abc]></A> - Link
    <B></B> - Bold
    <I></I> - Italic
    <U></U> - Underline
    <S></S> - Strike out
    <FN:abc></FN> - Font Name
    <FS:123></FS> - Font Size
    <FC:clColor(VCL)|Color(FMX)|$123456|$12345678|#123456|#12345678></FC> - Font Color
    <BC:clColor(VCL)|Color(FMX)|$123456|$12345678|#123456|#12345678></BC> - Background Color

    <BR> - Line Break
    <NBR> - Prevent line break after #13#10 sequence
    <L></L> - Align Left
    <C></C> - Align Center
    <R></R> - Align Right
    <T:123> - Tab
    <TF:123> - Tab with aligned break
    <IMG:nnn> - Image from ImageList where 'nnn' is image index
    <IMGRES:name> - PNG image from Resource where 'name' is the resource name
    <UL></UL> - Unordered list
    <OL></OL> - Ordered list
    <LI></LI> - List item
    <FLOAT:X,Y[,Width]></FLOAT> - Floating area
    <SPOILER:name></SPOILER> - Spoiler Title
    <SDETAIL:name></SDETAIL> - Spoiler Detail
    <LS:nnn></LS> - Line spacing where 'nnn' is the height in pixels
    <SUP></SUP> - Superscript
    <SUB></SUB> - Subscript}
    mais rien ne nous empêche d'améliorer le code (une fois compris )


    bon l'interface laisse encore à désirer (pour info @gilles cette page n'a pas de LiveBindings )

    Je n'avais pas pensé à Skia4Delphi et voulais éviter DelphiHtmlComponent

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/02/2021, 13h06
  2. Réponses: 0
    Dernier message: 18/03/2015, 10h23
  3. Réponses: 4
    Dernier message: 03/11/2009, 15h00
  4. Débutant : Delphi, Python ou Java ?
    Par Joubarbe dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 11/08/2008, 12h26
  5. Réponses: 4
    Dernier message: 04/03/2005, 10h42

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