bonjour
je voulais savoir est-ce qu'il et possible de verifier si le contenu d'un edit1->text existe dans une stringgrid...
bonjour
je voulais savoir est-ce qu'il et possible de verifier si le contenu d'un edit1->text existe dans une stringgrid...
Il te suffit de faire un double boucle sur ton TStringGrid (sur les colonnes et les lignes) et tu compares le contenu de la case trouvée avec le contenu de ton Edit.
bin se que je veut faire ses la choses suivante, entrez une valeur dans un edit1->text, et vérifier s'il existe dans la premiere colone du tableau, si l'enregistrement existe, il l'affiche....
please, help, me, ....
quelqu'un aurez t'il un source.???![]()
voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for(int i = 0; i < StringGrid1->RowCount; i++) { if(Edit1->Text == StringGrid1->Cells[0][i]) ShowMessage("Element trouve !"); }
j'ai deja fais se test et sa fonctionne, moi se que je veux, ses que s'il et existant dans la StringGrid1, et bien qu'il le surligne... ??? et sa j'y arrive pas ....!!!![]()
![]()
ça dans le .h :
dans le code OnDrawCell de StringGrid1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2int ligne;
sur un boutton ou autre :
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
26 TColor bgColor; // Couleur de fond TColor fontColor; // Couleur du texte if(ARow == ligne) // Ligne a colorier { bgColor = TColor(0x003f40d4); fontColor = clWhite; } else // Couleur des autres lignes { bgColor = clWhite; fontColor = clBlack; } // Creons la couleur de fond + la couleur du texte // Il faut s'assurer que la cellule n'appartient pas a la 1ere ligne if (ARow != 0) { StringGrid1->Canvas->Brush->Color = bgColor; StringGrid1->Canvas->FillRect(Rect); // Colore le fond de la cellule StringGrid1->Canvas->Font->Color = fontColor; // Couleur du texte a afficher } // Ecrivons maintenant le texte StringGrid1->Canvas->TextOut(Rect.Left + 2, Rect.Top + 3, AnsiString(StringGrid1->Cells[ACol][ARow]));
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 int i; // Pour parcours de la boucle for bool element_trouve = false; // reste a false si pas d'element de trouve for(i = 1; i < StringGrid1->RowCount; i++) { if(Edit1->Text == StringGrid1->Cells[0][i]) { ligne = i; // la ligne a colorier element_trouve = true; // l'element est trouve } } if(!element_trouve) ligne = -1; // si l'element n'est pas trouve, on ne colore aucune ligne StringGrid1->Repaint(); // Actualisation du tableau
merci ac/dc, mais maintenant le soucie et que dans ma propriété OnClick du stringgrid1 mon code ne fonctionne plus...
ton code et nickel mais il faut que si je clique directement sur une ligne dans le stringgrid, il me la surligne.... ???
merci d'avance
Bonsoir,
Il faut rajouter :
dans le OnDrawCell
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (State.Contains(gdSelected)) { //on souligne le texte }
@ +![]()
dans le OnClick :
normalement ça devrait le faire .....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ligne = ARow; StringGrid1->Repaint();![]()
Partager