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 :

[StyleBox FMX]Possible de changer le paramètre d'un objet inclus dans un style en runtime?


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    2 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 251
    Par défaut [StyleBox FMX]Possible de changer le paramètre d'un objet inclus dans un style en runtime?
    Bonjour,

    J'ai un style défini pour les éléments d'un Listbox dont je dois modifier la couleur de fond en runtime selon les données affichées.

    Jusqu'à maintenant, je le réalise en ayant plusieurs styles avec une couleur de fond différente et je change de style en fonction de la couleur voulue.

    Question:

    Est-ce qu'il y a un moyen de changer la valeur d'un paramètre d'un objet du style (par exemple: la couleur de fond d'un TRectangle) avec une simple ligne de code du genre "TRectangle.fill.color:=clBlue"?

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    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 089
    Par défaut
    FindStyleResource devrait t'intéresser

    A lire Changer de style au runtime
    comment changer la couleur selon une valeur
    Redéfinir OnPainting dans TFmxObject mais ce n'est pas une approche viable à long terme

    Je ne fais toujours pas de FMX mais ça va peut-être venir, je vais surement commencer par des App Console Linux (et éventuellement installer FMXLinux pour refaire une application pour apprendre le dev Linux avant de m'attaquer aux Deamons)
    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
    Rédacteur/Modérateur

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

    Tout dépend de comment est rempli la ListBox.

    Plutôt que FindStyleRessource (nécessaire au TListViews),et pour un remplissage "à la main", je partirai sur StyleData item.StyleData['rectangle.fill.color']:=TAlphaColors.Blue cf. ce post par exemple

    Via LiveBindings, je suggère de lire ce billet https://www.developpez.net/forums/bl...istbox-styles/ (utilisant toujours StyleData d'ailleurs )

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    2 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 251
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    Tout dépend de comment est rempli la ListBox.

    Plutôt que FindStyleRessource (nécessaire au TListViews),et pour un remplissage "à la main", je partirai sur StyleData item.StyleData['rectangle.fill.color']:=TAlphaColors.Blue cf. ce post par exemple

    Via LiveBindings, je suggère de lire ce billet https://www.developpez.net/forums/bl...istbox-styles/ (utilisant toujours StyleData d'ailleurs )
    Dans mon cas, j'ai un style se composant d'un TRectangle (destiné uniquement à colorer à l'affichage les Items de mon TListBox) et des données Ttext que j'ai installé dans ce dernier. D'ailleurs je galère pour placer correctement ces p...ains de textes... On peut se battre des heures avec les paramètres Align et Anchors, on a jamais ce que l'on veut, c'est une vraie m...

    A la vue de ce qui précède, ton expérience dit quoi? StyleData ou FindStyleRessource?


    PS: Est-ce que vous vous rendez compte que l'on en est à chercher comment changer la couleur d'un rectangle? FMX, c'est la négation même de ce qui a fait, à une époque, le succès de Delphi, un outil simple et efficace facilitant la programmation!

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 635
    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 635
    Billets dans le blog
    65
    Par défaut
    Cela ne me dit pas comment est remplie la listbox mais peu importe. Je vote plutôt pour le StyleData (plus facile à écrire) je réserve FindStyleRessource pour TListView

    Pour ce qui est de tes réflexions sur FMX, je ne suis pas d'accord, sauf sur le fait qu'il faut fouiller dans la doc et que celle sur les styles est plutôt bâclée.
    J'ai bien un projet de documentation, plein de notes que j'ai pu relever, mais cela demande du temps

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    2 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 251
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Pour ce qui est de tes réflexions sur FMX, je ne suis pas d'accord, sauf sur le fait qu'il faut fouiller dans la doc et que celle sur les styles est plutôt bâclée.
    Libre à toi de considérer que faire des dizaines de lignes de code en lieu et place d'un "Rectangle1.fill.color:=clBlue" est plus simple...

    Pour ma part, je constate que la moindre action avec FMX nécessite des heures de recherche dans une doc mal-foutue quand ce n'est pas tout simplement inexistante!

    Avec FMX, j'en suis à me limiter dans les réalisations de mes app... Il faut tellement d'efforts pour savoir comment réaliser le moindre truc que je me limite aux 2 ou 3 approches que j'ai déjà utilisé par le passé. A mon avis pour pouvoir apprécier FMX, il faut disposer de temps... Ce que je n'ai malheureusement pas... Vu l'ampleur des tâches, je dois me concentrer sur une approche "productive" et laisser à des jours heureux la découverte dans le détail des subtilités de FMX (j'ai l'habitude de dire "pour les longues soirées d'hiver" mais on est un 19 décembre et les "longues soirées d'hiver" me semblent encore bien loin...)

    De fait, je pense que ta vision "positive" de FMX s'explique par la teneur de ton commentaire... Et cela s'explique en un mot "LiveBinding". Est-ce que je me trompe?

    Pour répondre à ta question: Je n'utilise pas "LiveBinding" pour introduire les données dans mon ListBox mais "manuellement" par du code.

    Merci encore pour ton aide précieuse à la communauté Delphi.

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    2 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 251
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Je ne fais toujours pas de FMX mais ça va peut-être venir...
    Bien heureux homme! Tu ne sais pas la chance que tu as!

    Le présent sujet de discussion illustre parfaitement ce qu'est FMX... Une usine gaz!!!!!!!!!!!!!!!!!!!!!

    Ce que tu fais en 1 ligne de 25 caractères max en VCL se transforme en des heures de recherches sur le web, de tests, de discussions sur les forum pour te retrouver au final avec un code de plusieurs dizaines de lignes pour faire mal ce qui était si simple à réaliser avec VCL.

    FMX est un "tue l'amour". Si tu cherches à dégoûter quelqu'un de Delphi et de l'informatique en général, n'hésite pas... Mets lui du FMX dans les pattes!

    Merci pour tes info...

Discussions similaires

  1. [AC-2007] Changer le lien d'un objet OLE dans une table
    Par r.louis dans le forum IHM
    Réponses: 2
    Dernier message: 02/02/2010, 10h26
  2. Réponses: 1
    Dernier message: 23/02/2008, 08h43
  3. Pb pour changer la taille d'un Objet TImage dans une Form
    Par Gouyon dans le forum C++Builder
    Réponses: 10
    Dernier message: 06/06/2006, 18h01
  4. changer les paramètres d'internet rapidement
    Par Mut dans le forum Windows
    Réponses: 4
    Dernier message: 02/02/2006, 21h30
  5. Changer les paramètres régionaux
    Par STEF_1 dans le forum Access
    Réponses: 2
    Dernier message: 27/10/2004, 15h39

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