|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Pierre-Jean TULOUPInscription : avril 2003 Messages : 37 ![]() |
Bonjour à tous,
J'ai une stringgrid dont je veux que, si on clique sur une ligne, celle-ci change de couleur..., après avoir remis en couleur normale des lignes qui auraient antérieurement changé de couleur par la même manip. Problème classique si l'on en croit le nombre de questions posées à ce sujet sur Internet et dans les forums Delphi.... Mais j'ai lu la faq, Gilles Louise, Leblanc, L'ours des Carpathes et d'autres, piqué des bouts de code un peu partout, souvent après les avoir traduits de Delphi, (que je ne connais pas) et ça fait trois jours que rien ne marche et que j'en suis toujours au même point, à savoir que je ne change que la couleur de la cellule sur laquelle je clique et que toute cellule cliquée prend cette couleur. J'ai piqué (et transcrit) le code suivant dans un forum delphi, où il est certifié que toute la ligne change de couleur et où la discussion est considérée comme résolue... Et pourtant ça ne marche pas: le résultat est celui que je décris au-dessus. Code :
Est-ce que quelqu'un peut m'expliquer ce qui se passe et ce que je devrais faire ? Merci d'avance ! |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Inscription : mars 2006 Messages : 2 629 ![]() |
Salut pjtuloup
Une piste Code :
__________________
-- Plutot que d'essayer de réinventer la roue, apprenons à nous en servir.
|
||
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Pierre-Jean TULOUPInscription : avril 2003 Messages : 37 ![]() |
Merci pour la réponse rapide ! Je testerai Lundi, car là je quitte le bureau... épuisé !
|
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : janvier 2003 Messages : 273 ![]() |
Dans la DrawGrid (pareil en StringGrid mais je maitrise mieux la DrawGrid), l'évènement de rafraichissement ne porte que sur le cellule concernée.
Par exemple si tu clique sur une cellule ne se rafraichiront que cette cellule et que celle qui avait le focus précédemment, pour que tu puisses les redessiner. Dans ces conditions tu ne pourras pas rafraichir une colonne entière puisque le message de dessin (Le DrawCell n'est pas envoyé au reste de la grille). Par contre qu'il existe une option qui permet de rafraichir toute une ligne quand tu clique dessus (goRowSelect je crois). Cette option est-elle activée ? Si elle ne te conviens pas, regarde comment elle est implémentée dans le composant et fait pareil. Ce ne sera pas si facile car la plupart des méthodes sont protégées. |
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Pierre-Jean TULOUPInscription : avril 2003 Messages : 37 ![]() |
Merci les gars !
J'ai eu du boulot avant de recevoir la réponse de Yarp et comme je suis feignant et que celle-ci me paraissait plus simple, je l'ai testée en premier. En effet, je n'ai eu qu'à activer le goRowSelect par un pour que mon problème soit résolu Merci beaucoup à tous les deux. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com