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 VCL Delphi Discussion :

Personnaliser un ListView


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 150
    Points : 51
    Points
    51
    Par défaut Personnaliser un ListView
    Bonjour à tous,

    Je développe actuellement une application sous Delphi et j'aimerai savoir comment faire pour modifier la couleur d'un ListView

    Je réussis à colorier le fond et le texte des cellules, mais il me reste les lignes et le fond et le texte des en-têtes du tableau à colorier...

    Une solution à mon problème ?

    Cordialement

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    A partir de XE2, faudra voir avec les thèmes et le StyleHook

    C'est un composant Windows, la TListView est une encapsulation Delphi et pas toujours évident de faire ce que l'on veut avec en terme de graphisme !

    As-tu remarqué qu'il y avait différents events :
    OnAdvancedCustomDraw
    OnAdvancedCustomDrawItem
    OnAdvancedCustomDrawSubItem
    OnCustomDraw
    OnCustomDrawItem
    OnCustomDrawSubItem
    OnDrawItem

    Certains nécessitent OwnerDraw à True (si tu redessine tout c'est conseillé)
    D'autres ne sont là que pour ajouter après le dessin standard des éléments supplémentaires
    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 du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 150
    Points : 51
    Points
    51
    Par défaut
    Bonjour,

    Oui, j'ai vu pour ces différents évènements, cependant je reste incapable de les utiliser, je ne les comprends pas :/ J'avais déjà tenté en vain... Mais je vais réessayer !
    D'ailleurs, ce n'est pas utile uniquement si on sélectionne une colonne ou si on passe la souris dessus pour ces genres d'évènements ?
    Je précise que je ne dois avoir aucune interaction avec mon application, cela reste juste de l'affichage, mais j'aimerai le rendre plus lisible !
    C'est pourquoi j'aimerai vraiment séparer les cellules avec une couleur qui ressorte plus que le blanc des lignes séparant les cellules du tableau...

  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 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    A partir de XE2, faudra voir avec les thèmes et le StyleHook
    voilà pourquoi indiquer la version de Delphi aurait été un plus .
    (ainsi que de savoir s'il s'agit de VCL ou FMX le cas échéant)
    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 ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Utilise une TStringGrid ou même TDrawGrid, tu pourras tout dessiner !
    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

  6. #6
    Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 150
    Points : 51
    Points
    51
    Par défaut
    J'utilise la version 7 de Delphi !
    Un TStringGrid ou un TDrawGrid ? C'est pas un peu bête de tout refaire ?...

    Aucun moyen de colorier ce que je veux dans un ListView ? Iic juste les entêtes et les séparations de lignes et de colonnes ?...

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Il est parfois plus simple et plus propre de tout gérer que de lutter contre des composants récalcitrant !
    Surtout avec le TListView qui se comporte différemment selon Win2K, WinXP, Vista, ...

    C'est d'ailleurs pour cela que les styles de XE2 apportent un grand plus par rapport au code D7 si l'on souhaite faire quelques choses des très personnalisées !

    Ne connaissant pas ton projet et jusqu'où tu pousses la personnalisation, il n'est pas évident de proposer une solution

    A la limite, triche !
    N'affiche pas les titres (ShowColumnHeaders à False) et utilise la première ligne de données comme titre !
    Tu pourras ainsi la dessiner librement mais a sacrifice de certains comportements (perte des titres au défilement Vertical)

    Tu peux aussi, avoir un entête au dessus de la TListView, si les colonnes ne sont pas redimensionnables (c'est le cas avec ShowColumnHeaders à False), c'est faisable
    Encore une fois, sacrifice, perte des titres au défilement Horizonal

    C'est de la bidouille, comme je disais, une lutte
    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

  8. #8
    Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 150
    Points : 51
    Points
    51
    Par défaut
    Pas bête ! Je vais tenté ça, merci bien !
    Si je "lutte" vraiment trop, je changerai sans doute le composant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Personnaliser une listview windows mobile 6
    Par teabetabboris dans le forum C#
    Réponses: 1
    Dernier message: 19/07/2012, 10h03
  2. Personnaliser une ListView
    Par omarouen dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 02/04/2012, 13h56
  3. [Tutoriel] Personnaliser une ListView
    Par Djug dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 18/03/2011, 11h57
  4. Personnaliser une ListView en fonction des données ?
    Par Mythrandil dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 06/03/2009, 17h34

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