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 :

Colorier une seule case choisie d'un StringGrid


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    conducteur
    Inscrit en
    Décembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : conducteur

    Informations forums :
    Inscription : Décembre 2014
    Messages : 12
    Points : 23
    Points
    23
    Par défaut Colorier une seule case choisie d'un StringGrid
    bonsoir la communauté
    je voudrais colorier une case d'un stringgrid composé de trois cases
    J 'ai le code suivant qui me colorie toute la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    stringgrid.canvas.brush.color:=clred;
    stringgrid.canvas.fillrect(rect);
    quelqu'un maîtrise le sujet merci d'avance

  2. #2
    Rédacteur/Modérateur

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

    l'astuce est de connaitre la position de la cellule (CellRect) et de passer par un Rectangle (TRect)
    voici un bout de code qui colorie en rouge la cellule colonne 1, ligne 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var ARect : TRect;
    ...
    begin
            ARect.Left:=AStringGrid.CellRect(1,1).Left;
            ARect.Top:=AStringGrid.CellRect(1,1).Top;
            ARect.Right:=AStringGrid.CellRect(1,1).Right;
            ARect.bottom:=AStringGrid.CellRect(1,1).Bottom;
            Astringgrid.canvas.brush.color:=clred;
            AStringGrid.Canvas.FillRect(ARect);
    ....
    notes :
    ce code ne vérifie pas l'état de la cellule (gdselected,gdFocused), ce qu'il serait bon de traiter
    si quelque chose était écrit dans la cellule , c'est effacé
    le "coloriage" dépend également de l'évènement utilisé , par exemple si ce code est exécuté par l'intermédiaire d'un bouton , il disparaitra dés modification, scroll ou autre opération sur le stringgrid
    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

  3. #3
    Membre à l'essai
    Homme Profil pro
    conducteur
    Inscrit en
    Décembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : conducteur

    Informations forums :
    Inscription : Décembre 2014
    Messages : 12
    Points : 23
    Points
    23
    Par défaut Remerciement à SergioMaster
    bonne et heureuse année à tous ceux qui participent au site
    un immense merci à SergioMaster qui m'a permis de progresser et de résoudre le problème énoncé

  4. #4
    Membre à l'essai
    Homme Profil pro
    conducteur
    Inscrit en
    Décembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : conducteur

    Informations forums :
    Inscription : Décembre 2014
    Messages : 12
    Points : 23
    Points
    23
    Par défaut Colorier une case d'un StringGrid après avoir comparé son contenu
    bonjour à tous
    Je n'arrive pas à colorier une case d'un stringgriden passant par l'événement onclic d'un bouton
    Je m'explique, j'ai un stringgrid et 3 tedit . Le stringgrid est composé de 9 chiffres et chaque tedit composé d'un chiffres et d'une couleur
    Le 1er chiffre du tedit est colorié en rouge, je compare le contenu du 1e tedit avec le contenu de la 1ère case du stringgrid et si les valeurs sont
    égales alors je voudrais donner la même couleur à la case du stringgrid. Problème le code d'erreur me marque
    aucune version surchargée de 'rect' ne peut être appelé avec ses arguments voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure Tmonformulaire button1onclic(sender:Tobject);
    begin
    if MaGrille.cells[1,1]:=edit1.text then begin
    MaGrille.canvas.brush.color:=clred;
    MaGrille.canvas.fillrect(rect);
    MaGrille.canvas.TextRect(Rect,Rect.left,Rect.Top,edit1.text);
    si quelqu'un peut m'expliquer le problème je lui serais extrêmement reconnaissant
    merci d'avance

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 300
    Points
    11 300
    Billets dans le blog
    6
    Par défaut
    Il ne faut pas appeler rect un TRect : rect() est une fonction.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Rédacteur/Modérateur

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

    Les fêtes de fin d'année ont du être éprouvantes ?
    J'avais déjà répondu à ta question similaire http://www.developpez.net/forums/d14...d/#post8081014 dans ce post
    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

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

Discussions similaires

  1. Colorier une seule case choisie d'un StringGrid
    Par ammapro dans le forum Delphi
    Réponses: 5
    Dernier message: 05/01/2015, 10h11
  2. Colorier un nombre de cases choisies d'un StringGrid
    Par Flyingmax dans le forum Débuter
    Réponses: 3
    Dernier message: 27/12/2009, 15h32
  3. Dans formulaire une seule case cochée sans name
    Par Invité(e) dans le forum ASP
    Réponses: 1
    Dernier message: 16/04/2008, 22h51
  4. Table SWT.CHECK ne cocher qu'une seule case
    Par snoop dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 28/06/2007, 16h33
  5. [JTable avancé]Update d'une seule case à moindre coût
    Par nicorama dans le forum Composants
    Réponses: 2
    Dernier message: 15/05/2007, 05h24

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