Désélectionner un StringGrid

Résolu
gebu34 Messages postés 118 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 17 novembre 2009 - 29 mai 2007 à 18:21
gebu34 Messages postés 118 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 17 novembre 2009 - 30 mai 2007 à 06:59
Bonjour à tous,
Une petite question que je n'arrive pas à résoudre...Dans les options d'un StringGrid, quand on a mis à True la sélection de la ligne, lors du premier affichage, la première ligne apparaît comme sélectionnée.
Comment faire pour supprimer cette sélection ? Action identique lorsque l'on Clique sur une ligne, je voudrais la désélectionner par programme....
Attention le StringGrid est un objet complexe puisque lorsque l'on Clique sur une ligne, la précédente sélectionnée redevient normale. J'ai essayé de dériver le code, mais rien......
Merci
A+

4 réponses

WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 2
29 mai 2007 à 23:11
En effet, le fait d'appeler cela dans le OnDrawCell ne peux aboutir qu'à du "flickering". Une solution pourrait être de placer ce code dans l'evenement OnMouseUp. Comme cela tu visualises la ligne sélectionnée mais dès le relachement la sélection disparait.

N.B. Ne pas mettre ce code dans le OnMouseMove sinon ...

P.S. Si cela ne te convient pas, il va falloir alors choisir la solution du OnDrawCell pour redessiner toutes tes cellules dont l'état est "sélectionné".

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
3
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 2
29 mai 2007 à 19:51
Bonsoir


Au plus simple, du moins ce qui me vient à l'esprit en premier, je dirais :

Dans l'événement OnDrawCell de ton StringGrid, tu ajoutes une sélection nulle.

Const
  SelectionNulle : TGridRect = ( Left : -1 ; Top : -1 ; Right : -1 ; Bottom : -1 ) ;
Begin
  StringGrid1.Selection := SelectionNulle ;
end ;

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
0
gebu34 Messages postés 118 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 17 novembre 2009
29 mai 2007 à 21:41
Salut,
Ta solution est interressante (je l'ai testé), mais je voudrais éviter justement le OnDrawCell qui necessite l'action RePaint sytématique du StringGrid, qui pour de grosses grilles ralentit le programme.
A+
0
gebu34 Messages postés 118 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 17 novembre 2009
30 mai 2007 à 06:59
Je vais essayé le OnMouseUp (pas OnMouseMove cela ferait désordre).
Malheureusement dans TStringGrid tout tourne autour de OnDrawCell
merci
A+
0