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 :

Construction d'un tchat : placez (dans un bon ordre) plusieurs composants créés dynamiquement


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut Construction d'un tchat : placez (dans un bon ordre) plusieurs composants créés dynamiquement
    Salut tout le monde,

    A la recherche depuis une dizaine d'années d'un "affichage tendance, moderne et évolué" pour un tchat, et après avoir essayé tout plein de composants (Trichedit, Tbroswer, ect), je me suis résolue à réinventer la roue !

    Le conteneur principal sera un Tlistbox, et chaque item représentera un tchat envoyé (texte, image (émojis), ou texte + image)

    L'idée serait de créer tout d'abord un Tpanel et d'y inclure tous ce dont on aura besoin : Tlabel et Timage

    Ce que je recherche c'est le principe et surtout la méthodologie, parce que je ne sais pas si je vois mal les choses, mais je pense que je dois gérer :

    - la longueur du texte (savoir quand il faudra retourner à la ligne)
    - s'il y a du texte puis des émojis
    - s'il y a que des émojis

    ect

    j'ai un peu l'impression que ce sera sur le terrain que je verrai vraiment les difficultés

    si vous avez une meilleure idée, ou que vous voyez les choses plus facilement, n'hésitez pas

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 107
    Par défaut
    En gros ceci Chat offline via un composant vcl à traduire en FMX, très facile puisque tout est imbricable en FMX

    En dehors de copier Teams, Slack, Whats'app ... je crois que l'on a un peu tout vu à ce sujet

    Evidemment c'est extrêment basique, j'ai du mettre 10 + 20 minutes pour coder ça durant une réunion.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

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

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    Merci pour ta proposition
    Mais au-delà de l'aspect graphique, ce qui m'intéresse avant tout, c'est comment placer une ligne.
    Parce que dans ton exemple il n'y a que quelques mots.
    Mais imagine une phrase courte ? Une phrase longue ? Une phrase avec des émojis ?
    C'est surtout ça qui me tracasse ! Parce que je suppose qu'il faudra créer plusieurs label + image + les placers côte à côte, connaître les positions, etc. non ?

  4. #4
    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 Coussati Voir le message
    merci pour ta proposition
    mais au de-là de l'aspect graphique, ce qui m'intéresse avant tout, c'est comment placer une ligne
    parce que dans ton exemple il n'y a que quelques mots
    mais imagine une phrase courte ? une phrase longue ? une phrase avec des émojis ?
    c'est surtout ça qui me tracasse ! parce que je suppose qu'il faudra créer plusieurs label + image + les placers côté à côte, connaitre les positions, ect non ?
    C'est le problème classique des interfaces de ce type d'applications qui au final se sont toutes mises à singer les textos : un bloc à gauche, un bloc à droite, des couleurs différentes de background et du texte cadré à gauche (ou à droite) selon la langue, une hauteur de chaque bloc variable en fonction de la longueur du texte à afficher.

    A toi de voir ce que tu veux proposer. Pour avoir les tailles, le plus simple est de tout dessiner toi-même sur le Canvas de ta zone avec ascenseur. Les fonctions de dessin de textes proposent aussi des fonctions de calcul de la largeur ou hauteur selon ce que tu veux et la fonte choisie. Ca permet plus de souplesse.

    Sinon prend un TPanel (VCL) ou TRectangle (FMX), arrondi les bords, mets-y un TText (ou autre) en autosize et agrandi la hauteur du composant en fonction de la hauteur du texte.

  5. #5
    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
    Si tu ne trouves pas, tu peux t'inspirer ou utiliser des composants ou librairies existantes comme par exemple Alcinoe créée à la bade pour une application de rencontres.
    https://github.com/MagicFoundation/Alcinoe

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    J'avais déjà vu ces composants, je ne sais plus pourquoi je ne les ai pas utilisés.
    Peut-être que je jetterai un œil une nouvelle fois ?

    Sinon concernant ton premier message, comme je disais plus haut, l'esthétique n'est pas pour le moment le plus important (positions, rectangle, remplissage, etc.).
    Ce qui est important c'est comment afficher mon texte.
    Je ne sais pas si je me fais bien comprendre mais c'est la construction d'une phrase, ex : bonjour tout le monde , ça va bien ???
    Cet ex est composé d'un texte, suivi d'une image, d'un autre texte, puis d'une image.
    Faudra-t-il 2 tlabels ? 2 timages ? Comment les placer au bon endroit ?
    Ou alors je m'y prends mal dans mon idée ?

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 664
    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 664
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par Coussati Voir le message
    Le conteneur principal sera un Tlistbox, et chaque item représentera un tchat envoyé (texte, image (émojis), ou texte + image)
    L'idée serait de créer tout d'abord un Tpanel et d'y inclure tout ce dont on aura besoin : Tlabel et Timage
    pour moi, un TScrollBox qui contiendrait en item
    un Rectangle(avec bord arrondi) et parent d'un TText suffirait
    pour preuve, sans aucun code
    Nom : Capture.PNG
Affichages : 246
Taille : 8,6 Ko

    Le Rectangle étant là pour la partie fond.
    La hauteur d'un texte se calcule aisément (je ne sais plus où j'ai déjà mis ça, mais cela a à voir avec les listes TlistView avec des éléments de taille variable je reprend juste mon PC après 3 jours de la maladie à la mode).

    Toutefois, je ferai aussi un tour du côté de SKIALabel qui accepte aussi les émojis à la place de TText

  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
    Citation Envoyé par SergioMaster Voir le message
    Toutefois, je ferai aussi un tour du côté de SKIALabel qui accepte aussi les émojis à la place de TText
    Effectivement, bonne idée SkiaLabel qui fait du texte enrichi.

Discussions similaires

  1. Exporter les données dans le bon ordre
    Par frocket dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 15/11/2009, 23h11
  2. [phpMyAdmin] comment exporter la structure SQL des VIEW et dans le bon ordre ?
    Par Ekimasu dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 16/03/2009, 11h51
  3. Vérifier que toutes les balises soient bien fermées dans le bon ordre
    Par piotrr dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 19/02/2009, 10h32
  4. lesaffichages ne se font pas dans le bon ordre
    Par xokami35x dans le forum AWT/Swing
    Réponses: 15
    Dernier message: 18/08/2008, 13h00
  5. [CR] Comment imprimer dans le bon ordre
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 18/05/2004, 11h11

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