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 :

Affichez du texte, des images, des liens, comme Whatsapp


Sujet :

Composants FMX Delphi

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut Affichez du texte, des images, des liens, comme Whatsapp
    bonjour ou bonsoir

    à la base mon but était de réinventer la roue, mais après réflexion, pourquoi ne pas partir d'un exemple concret ? WhatsApp

    actuellement pour afficher du texte j'utilise un Trichedit sous delphi 7 et maintenant que j'ai décidé de passer à firemonkey, j'aimerais quelque chose de vraiment plus évolué et personnalisable

    quand j'ai parlé de réinventer la roue, c'est parce que je voulais éviter un conteneur de texte et tout gérer moi même : créer tout dynamiquement dans un scrollbox
    j'imaginais devoir créer des Tlabel pour chaque texte envoyé, des Timages, ect, ect
    est ce que ça ne deviendrait pas trop lourd par la suite ? à quel moment supprimer les objets crées ? ect ...

    mais au final, qu'est ce que je recherche ? avoir un peu la liberté de WhatsApp : avoir une sorte de buble chat, voir l'avatar de celui qui tchat, proposer des images, ect
    alors je vous demande si vous savez comment s'y prend WhatsApp svp ?

    attention : je ne parle pas de partie réseau, mais uniquement de la partie locale, à savoir affichage du texte, des images, du son, et autres ...

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Bonsoir,
    Citation Envoyé par Coussati Voir le message
    pourquoi ne pas partir d'un exemple concret ? WhatsApp
    BigChallenge quand même

    actuellement pour afficher du texte j'utilise un Trichedit sous delphi 7 et maintenant que j'ai décidé de passer à firemonkey,
    Alors, au revoir TRichedit (sauf utilisation de composant tiers ie. TMS FNC ou TMS FMX )


    mais au final, qu'est ce que je recherche ? avoir un peu la liberté de WhatsApp : avoir une sorte de buble chat, voir l'avatar de celui qui tchat, proposer des images, ect
    une rapide réflexion et déjà trois choix :
    - Un TlistView avec des apparances dynamiques pourrait convenir pour du chat "simple". Un TlistView c'est surtout pour des données dans un fichier, un seul "style" d'élément que l'on peut tout de même retailler en fonction de la taille du contenu.
    - Un TListBox avec différents styles d'éléments augmenterait considérablement les possibilités (mais aussi la codification )
    - Un TVerticalScrollBox avec diverses frames est aussi une solution (pour simplifier les deux premières dérivent de celui-ci)

    Je pencherai pour le TVerticalScrollBox et quelques frames : textesimple,image+texte, ensemble d'images. Pour un contenu genre lien youtube, pas d'idée


    alors je vous demande si vous savez comment s'y prend WhatsApp svp ?
    WhatsApp non mais pour KisKis une application Firemonkey je crois savoir que l'auteur s'est appuyé sur la blibiothèque de composants Alcinoe, il me semble même que s'en est l'auteur
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    WhatsApp est si compliqué ? moi qui pensait à un conteneur, et quelques bidules

    j'avais aussi pensé au TVerticalScrollBox mais c'est la gestion des composants que je vais créer qui pourrait être galère : on est bien d'accord que je vais devoir créer dynamiquement un Tlabel à chaque fois qu'un utilisateur tchatera ? ça risque de faire planter l'application ou la faire laguer quand il y aura plusieurs utilisateurs non ?

    je ne compte pas m'arrêter à l'affichage uniquement de texte : je dois pouvoir envoyer des boutons ! oui, un modérateur qui s'égosille à expliquer comment on va dans option >> configuration par ex enverrait un bouton, l'utilisateur clique, et hope ça s'ouvre !

    le conteneur doit tout supporter ...

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Bonjour
    Citation Envoyé par Coussati Voir le message
    j'avais aussi pensé au TVerticalScrollBox mais c'est la gestion des composants que je vais créer qui pourrait être galère
    : on est bien d'accord que je vais devoir créer dynamiquement un Tlabel à chaque fois qu'un utilisateur tchatera ?
    Non, tout serait dans un/des frames prédéterminés
    ça risque de faire planter l'application ou la faire laguer quand il y aura plusieurs utilisateurs non ?
    ça aucune idée au niveau du nombre de blocs ajoutés

    je ne compte pas m'arrêter à l'affichage uniquement de texte : je dois pouvoir envoyer des boutons ! oui, un modérateur qui s'égosille à expliquer comment on va dans option >> configuration par ex enverrait un bouton, l'utilisateur clique, et hope ça s'ouvre !
    Moui, mais là c'est carrément une sorte de raccourci. Ou alors, idée folle ? Créer une forme Delphi (j'ai vu ça avec les videos Phyton4Delphi 1 ou 2 ça je ne m'en souviens pas)

    le conteneur doit tout supporter ...
    pas le, de mon point de vue, il faut prévoir divers frames.

    Reste un point quand même, (hors composants tiers) je ne vois pas comment traiter les émojis dans une zone texte
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    pour ce genre de choses tu as toujours 2 approches possibles

    1) placer des composants dans une scrollbox

    2) dessiner le contenu sur un canvas

    par exemple; j'ai un projet un peu à l'abandon (à punaise 3 ans déjà !) d'un RichView compatible FMX (qui n'est en fait qu'un visualiseur actuellement)

    https://github.com/tothpaul/Delphi/t...r/RichView/fmx

    la version VCL est un poil plus avancée si mon souvenir est bon
    https://github.com/tothpaul/Delphi/tree/master/RichView

    comme chaque élément possède une position à l'écran il est tout à fait possible de gérer des clic sur tel ou tel item particulier...
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    par exemple; j'ai un projet un peu à l'abandon (à punaise 3 ans déjà !) d'un RichView compatible FMX (qui n'est en fait qu'un visualiseur actuellement)

    https://github.com/tothpaul/Delphi/t...r/RichView/fmx
    Mais c'est que ce n'est pas mal du tout ça je ne connaissais pas, il faudra que je teste

    Sinon, je suis parti sur une idée de frame avec un webbrowser
    Nom : Capture.PNG
Affichages : 282
Taille : 12,3 Ko
    bon c'est un fichier Html plus un fichier CSS récupéré à la va-vite, à peaufiner
    Hors calcul de taille (hauteur) ce qui fait qu'apparaît une glissière
    Nom : Capture_1.PNG
Affichages : 272
Taille : 19,6 Ko
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Au fait, on aurait aussi pu s'inspirer de Skype (partie conversation) qui fut, à l'origine, écrit avec Delphi . Depuis Microsoft a phagocyté le produit et peut-être changé d'outil de développement (conséquence Skype fonctionne moins bien )
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Au fait, on aurait aussi pu s'inspirer de Skype (partie conversation) qui fut, à l'origine, écrit avec Delphi . Depuis Microsoft a phagocyté le produit et peut-être changé d'outil de développement (conséquence Skype fonctionne moins bien )
    et tu as les sources de Delphi version Skype ? car le résultat peut être obtenu de bien des façons différentes
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    et tu as les sources de Delphi version Skype ?
    Hélas non, pourtant, fut une époque où je les avais vu dispo en téléchargement
    En fait ce que je voulais écrire c'est que comme source d'inspiration autre que whatsapp (titre du sujet) , Skype/conversation (windows) n'était pas mal dans son genre
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    oui les sources ont circulés mais la seule chose que j'ai pu trouver c'est un repositoty Github avec du code C++
    https://github.com/bato3/skype_part3_source

    du coup je ne sais pas si le code qui a fuité était sous Delphi ou pas
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  11. #11
    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
    Points : 3 611
    Points
    3 611
    Par défaut
    Pour afficher des trucs mis en forme, ne surtout pas partir sur des composants de saisie, ça prend des ressources pour rien.

    Il existe plusieurs solutions d'affichages en HTML (cf https://github.com/search?q=delphi+html). Codés nativement en Delphi ça passe pas trop mal. Il y a aussi des suites (payantes) comme delphihtmlcomponents.com qui fournissent aussi l'éditeur.

    Ce projet de label HTML est tout frais et semble donner de bons résultats :
    https://github.com/digao-dalpiaz/DzHTMLText

  12. #12
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    merci à vous pour vos idées
    si je n'ai pas répondu plus tôt c'est parce que je n'ai pas delphi sous la main pour tester

    @pprem, j'ai bien aimé le projet dzhtmltext je suppose que c'est un projet similaire à celui de Paul TOTH ?

    afficher du texte en html c'est sympa et pratique, mais le problème c'est que je ne veux pas me limiter à afficher uniquement du texte
    il faut pouvoir afficher des images (cliquable pkoi pas ?)

    @Paul TOTH je suis d'accord avec toi pour placer les composants dans une scrollbox, chaque "message" serait sur un Tpanel par ex, qu'on libèrera une fois que l'on veut supprimer ? par contre pour les canvas je n'ai pas bien compris, ça ne sert pas à dessiner sur des bipmap ?

    après il faut prendre en compte plusieurs choses :

    1/ savoir afficher bien sûr, je pense que ce n'est pas le plus dur, il suffit de créer le tout dynamiquement sur un Tpanel comme je l'ai dit

    2/ gérer tout ce qui a été créé, n'oublions pas que lorsque plusieurs personnes enverront un message ça se remplira rapidement ... est ce que l'application ne laguera pas à un certain moment ?

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    le Canvas est un outils de dessin virtuel, il permet de dessiner dans un Bitmap (TBimap.Canvas), mais aussi sur une Imprimante (Printer.Canvas) ou directement à l'écran (TForm.Canvas, TPaintBox.Canvas, ...)

    si tu utilises des composants, il est envisageable de les créer/détruire dynamiquement de façon à ce qu'un message tout en haut de la liste ne possède plus de composant correspondant vu qu'il est hors de portée...et quand tu regardes Whasapp par exemple, les messages les plus anciens de sont chargés que quand tu remontes, et l'ascenseur est dynamiquement rallongé au fur et à mesure.

    avec le dessin dans un Canvas c'est pareil, il ne sert à rien de dessiner les messages en dehors de la partie visible à l'écran...

    les deux techniques permettent les mêmes optimisations, simplement d'un côté du utilises de composants qui se dessinent eux même, de l'autre tu dessines l'information toi même.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Energistrer des composants comme un Image
    Par aliwassem dans le forum Delphi
    Réponses: 4
    Dernier message: 04/06/2007, 08h41
  2. Lire le format d'images PPM : de la lecture binaire ou texte des fichiers
    Par cladsam dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 08/05/2007, 12h35
  3. Comment faire des zones de texte sur image
    Par Myogtha dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 12/03/2007, 15h27
  4. [CSS]Problème affichage IE des liens images.
    Par Hoegaarden dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 04/09/2006, 09h53
  5. Réponses: 12
    Dernier message: 28/07/2006, 10h22

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