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 :

Firemonkey XE2 : Couleur d'une ligne dans une Stringrid?


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Par défaut Firemonkey XE2 : Couleur d'une ligne dans une Stringrid?
    Bonjour, cela fait maintenant pas mal de temps que je cherche à changer la couleur d'une ligne dans un StringGrid.

    J'ai trouvé pas mal de solutions pour une fiche VCL, mais j'utilise une fiche Firemonkey et il n'y a pas d'évènement OnDrawCell ou DrawCell dans les stringgrid, canvas.brush n'existe pas non plus, et je ne peux pas désactiver l'autopaint des cellules.

    Je voudrais changer la couleur des lignes à la création de la grille (la grille se crée ligne par ligne et se remplie à partir d'une base de données) et lors d'une modification dans une cellule (l'évènement Strngrd.KeyDown existe déjà et fonctionne sans la coloration).

    Si changer la couleur de fond est impossible, est-il possible de changer la bordure, ou la couleur du texte?

    Merci de votre aide,
    Cordialement,

    Polimax

  2. #2
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Par défaut
    Premièrement merci de me répondre aussi vite.
    J'ai encore fais des essais toute l'aprem' mais je n'y arrive pas. J'ai essayé avec des TRect, passé du temps sur les 3 sites de papy214, mais rien n'y fait.
    SergioMaster, j'utilise Firemonkey XE2 et les méthodes du XE4 ne sont pas les mêmes...
    Cela fait deux jours que j'essaye sans succès.
    J'avais trouvé une méthode pour colorer le texte, mais en faisant défiler la Stringgrid les colorations restaient au même endroit sur l'écran, la première ligne affichée restait colorée par exemple, alors que la première ligne de la Stringgrid ne l'était pas.
    Cordialement,
    Polimax

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Par défaut Problème au défilement
    J'ai réussi à colorer le texte d'une cellule en donnant un style à ma fenêtre grâce à Personnalisation des applications FireMonkey avec les styles, puis en créant un style dans le fichier .style et en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Procedure TfrmMain.changecaserouge(Sender: TObject; Col, Row: Integer);
    Begin
      grdLibelles.Columns[Col].CellControlByRow(Row).StyleLookup := 'redtextcellstyle';
      grdLibelles.Columns[Col].CellControlByRow(Row).applyStyleLookup;
    End;
    J'ai juste changé la couleur dans le style par défaut:

    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
    21
    22
    23
    24
    25
    object TLayout
        StyleName = 'redtextcellstyle'
        Position.Point = '(359,390)'
        Width = 107.000000000000000000
        Height = 22.000000000000000000
        DesignVisible = False
        object TBrushObject
          StyleName = 'foreground'
          Brush.Color = clared
        end
        object TBrushObject
          StyleName = 'selection'
          Brush.Color = x802A8ADF
        end
        object TContent
          StyleName = 'content'
          Align = alContents
          Position.Point = '(3,3)'
          Locked = True
          Width = 101.000000000000000000
          Height = 16.000000000000000000
          Padding.Rect = '(3,3,3,3)'
          HitTest = False
        end
      end
    Je colore une cellule après un test sur son contenu déclenché par un évènement OnKeyDown. Mais quand je scroll, la coloration reste sur la cellule affichée à l'emplacement de la cellule qui a a été colorée. Par exemple si j'ai coloré la cellule 1 alors que j'étais tout en haut de ma stringgrid, en défilant, la cellule affichée tout en haut sera toujours colorée.

    Screen juste après coloration :
    Nom : stringgridcouleur.jpg
Affichages : 366
Taille : 144,0 Ko

    Screen après un scroll :
    Nom : stringgridcouleur2.jpg
Affichages : 317
Taille : 59,5 Ko

    Je voudrais qu'une cellule soit colorée ou pas, mais que ça dépende seulement de son contenu et non de sa position à l'affichage.

    Avez-vous des idées de comment faire?

    Cordialement

    Léo Fazendeiro

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 604
    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 604
    Billets dans le blog
    65
    Par défaut
    Bonjour, et bienvenue sur le forum
    Citation Envoyé par Polimax Voir le message
    Si changer la couleur de fond est impossible, est-il possible de changer la bordure, ou la couleur du texte?
    impossible ! pas si sur , c'est possible avec la TMSFMXGrid en tout cas , je n'ai pas gardé mes essais fait avec XE2 et la Grid "classique" , mais cette partie (changer de couleur) je suis sur d'y être arrivé

Discussions similaires

  1. Réponses: 15
    Dernier message: 21/10/2009, 13h31
  2. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  3. [E-00] Syntaxe pour insérer une ligne ou une colonne dans une feuille
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 09h27
  4. [MySQL] inserer une ligne d'une table dans une autre table
    Par piero53 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 14/12/2008, 18h29
  5. Réponses: 3
    Dernier message: 29/01/2008, 12h08

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