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

 Delphi Discussion :

Question sur le StringGrid [DELPHI]


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 76
    Par défaut Question sur le StringGrid [DELPHI]
    Salut internaute,

    Voilà je fais un petit programme pour m'entrainer, dans se programme il y a un tableau "stringGrid" qui li des informations contenue dans un fichier texte.

    Lorsque j'appui sur un bouton sa m'affiche les info du fichier texte dans mon tableau jusqu'a la tout va bien.

    Exemple de ligne du tableau:
    "Vol n°3" 1 off reussi

    "Vol n°4" 6 On erreur


    Maintenant j'aimerai lorsque qu'il affiche "réussi" que sa me colore la ligne en vert, et lorsque c'est "erreur" qu'il me la mette en rouge.

    Est-ce possible? je m'en remet à vous!

    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Il y a une entrée dans la FAQ à ce sujet : Comment avoir des lignes de couleur sur un TStringGrid ?

    Il suffit de le modifier un peu pour tester si dans la colonne X pour la ligne Y il y a "erreur" ou "réussi".

    Voilà.
    Bon courage,

    Ero

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 76
    Par défaut
    En me baladant sur le forum j'ai trouvé un message de toi avec ce code:

    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
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
      if (ARow<>0) and (ACol <> 0) then
      begin
        StringGrid1.Canvas.Brush.Color:=clWhite;
        { Dessin du fond }
        StringGrid1.Canvas.FillRect(Rect);
        { Sélection de la couleur d'écriture }
      end;
      if AnsiContainsStr(StringGrid1.Cells[ACol,ARow],'-') then
        StringGrid1.Canvas.Font.Color:=clRed
      else
        StringGrid1.Canvas.Font.Color:=clBlack;
      { Dessin du texte }
      StringGrid1.Canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]);
    end;
    Ne pourrais je pas le réutiliser pour mon soucis ? Mais au lieu que sa soit "-" moi sa serait "erreur"


    non ?

    edit: Quand j'essaye il ne comprend d'où vient AnsiContainsStr ?

  4. #4
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Bien sur que tu peux utiliser ce que j'ai déjà posté sur le forum! C'est fait pour
    Pour AnsiContainsStr, il faut rajouter l'unité StrUtils dans les uses.

    Par contre, moi je modifie la couleur du texte si je me souviens bien, et non la couleur du fond... Donc faudra modifier surement Font.Color par Brush.Color ...
    Je te laisse regarder un peu, tu as toutes les infos dont tu as besoin (je n'ai pas Delphi sous la main).

    Tiens nous au courant

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 76
    Par défaut
    En faite j'ai fait autrement j'ai dessiner chaque case:

    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
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
      if ARow <> 0 then begin
        with StringGrid1, Canvas do begin
          if Objects[0, ARow] = Tobject(0) then
            Brush.Color := RGB(255, 200, 200)
          else
            Brush.Color := RGB(200, 255, 200);
          FillRect(Rect);
          //TextOut(Rect.Left + 2, Rect.Top + 2, Cells[Acol, ARow]);
          DrawText(Canvas.Handle, PChar(Cells[ACol,ARow]), -1, Rect ,
                   DT_CENTER or DT_NOPREFIX or DT_VCENTER or DT_SINGLELINE);
     
        end;
      end;
    end;
    avec quand j'appui sur mon bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
       if  StringGrid1.Cells[3, i] = 'erreur' then
          StringGrid1.Objects[0, i]       := TObject(0)
        else
          StringGrid1.Objects[0, i]       := TObject(1);
    ...
    Et sa fait ce que je voulais

  6. #6
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Donc c'est tout good ?

    Un petit ?

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

Discussions similaires

  1. Question sur les chemins Hiérarchiques et delphi
    Par dederfred dans le forum Delphi
    Réponses: 2
    Dernier message: 19/10/2006, 20h32
  2. Question sur Delphi 2006
    Par cocot dans le forum EDI
    Réponses: 1
    Dernier message: 27/03/2006, 17h30
  3. Question sur StringGrid
    Par dnkz dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/02/2006, 11h12
  4. Question sur la stringgrid et autres problemes .
    Par jamah dans le forum Composants VCL
    Réponses: 1
    Dernier message: 01/12/2005, 17h58
  5. Questions sur la programmation objet en Delphi
    Par Manopower dans le forum Débuter
    Réponses: 20
    Dernier message: 15/06/2005, 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