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 :

Listview: Comment changer la couleur de alternativeColors?


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 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 324
    Par défaut Listview: Comment changer la couleur de alternativeColors?
    Bonjour à tous,

    Dans le cas où je dois gérer spécifiquement la couleur de fond d'un item de Listview, je passe par l'ajout d'un item graphique à la conception dont je change la couleur en fonction des besoins via code.

    Mais dans le cadre d'un usage simple de Listview où je veux simplement qu'un item sur 2 soit coloré de manière différente, il y a la propriété Listview.AlternatingColors=true.

    Quand je mets cette propriété à true, le listview alterne les items avec une couleur de fond blanche et grise.

    Question: Je ne sais pas d'où vient cette couleur grise et surtout j'aimerai savoir où est-ce que je peux la modifier?

    Question subsidiaire: Un item sélectionné apparait par défaut texte blanc sur fond bleu. Y-a-t-il un moyen de changer ce comportement par défaut en réglant d'autres couleurs?

    Merci d'avance

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 324
    Par défaut
    Comme la question pourrait se poser à d'autres personnes, je vais répondre à ma propre question

    1° Ajouter un StyleBook à son projet

    2° Aller copier dans un StyleBook officiel de Delphi l'objet "listviewstyle"

    3° Coller l'objet dans son StyleBook personnel

    4° Modifier le paramètre "alternatingitembackground" de l'objet "listviewstyle" en indiquant la couleur de son choix

    5° Modifier les paramètres "Stylelookup" et "StyleName" du listview dont on veut changer la couleur par défaut pour qu'y soit appliqué le stylebook que l'on a personnalisé


    Comme d'habitude, ce qui se fait simplement en VCL, se fait beaucoup moins "simplement" en FMX

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 663
    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 663
    Billets dans le blog
    65
    Par défaut
    Ah, je savais bien que j'avais vu cette discussion quelque part ! Je travaillais sur un sujet de RoundRect dans un TListView, l'auteur de la question
    (dans un forum anglais) avait tenté l'approche modification de Stylebook ce qui n'était pas la bonne piste, je conseille plutôt celle-ci qui n'est encore qu'un brouillon

    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
    procedure TForm15.ListView1UpdateObjects(const Sender: TObject;
      const AItem: TListViewItem);
    var AListItemBitmap : TListItemImage;
        AColor : TAlphaColor;
        aCanvas : Tcanvas;
    begin
    AListItemBitmap:=AItem.Objects.FindObjectT<TListItemImage>('Image2');
     
    if assigned(AListItemBitmap) then
     begin
        AListItemBitmap.Bitmap:=TBitmap.Create(Trunc(listview1.width),Trunc(ListView1.ItemAppearance.ItemHeight));
        AListItemBitmap.Bitmap.Clear($00000000);
        aCanvas:=AListItemBitmap.Bitmap.Canvas;
        Acanvas.BeginScene;
        ACanvas.Stroke.Thickness:=1;
        ACanvas.Stroke.Color:=TAlphaColors.red;
        aCanvas.DrawRectSides(TREctF.Create(0,0,listview1.width,ListView1.ItemAppearance.ItemHeight),20,20,allCorners,1,allSides);
        ACanvas.EndScene;
     end;
    end;
    Nom : Capture.PNG
Affichages : 118
Taille : 17,5 Ko

    Bref, ayant vu la tentative, je me suis souvenu, sans pourtant la retrouver, que j'avais lu ta question.

    Perso, plutôt que de créer un nouveau style, sauf s'il y avait plusieurs listviews avec des présentations différentes, j'aurais choisi la modification au runtime

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/07/2005, 10h45
  2. Réponses: 7
    Dernier message: 28/06/2005, 11h53
  3. [phpBB] Comment changer les couleurs
    Par ludolecho dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 19/05/2005, 08h20
  4. comment changer la couleur du crayon?
    Par meli0207 dans le forum MFC
    Réponses: 10
    Dernier message: 07/05/2005, 10h41
  5. Réponses: 2
    Dernier message: 01/12/2004, 22h48

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