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

Lazarus Pascal Discussion :

[0.9.31/fpc 2.4.5] StringGrid : Multiselect et MouseWheel [Lazarus]


Sujet :

Lazarus Pascal

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [0.9.31/fpc 2.4.5] StringGrid : Multiselect et MouseWheel
    Bonjour,

    dans une StringGrid, j'aimerais obtenir un traitement similaire à Office:

    Je sélectionne un groupe de cellules à la souris, relâche son bouton gauche puis immédiatement après cette action, me déplace verticalement avec la roulette de la souris... Evidemment à ce moment, visuellement le bloc "sélectionné" ne s'agrandit pas : il se déplace verticalement dans la feuille.

    Or avec Lazarus, une même procédure, produit un bloc continu qui s'allonge avec la MouseWheel... à moins qu'une option de la StringGrid m'ait échappée. J'avais "en attendant" partiellement réglé ce problème dans un composant, en associant la sélection à un array de booleans... et à une image dans la FixedColumn... tout en délaissant ce problème de "SelectedColor" des lignes ou cellules sélectionnées. J'ai un peu de temps pour le retravailler.

    Actuellement, avec l'array de booleans, je serais capable de gérer le problème des couleurs, si après une sélection (au clic gauche), je pouvais avant l'usage du OnMouseWheel remettre en quelque sorte le "Flag de sélection à false"... Et là, je ne sais pas faire.
    Cette petite vidéo illustre mon problème : le SelectedColor (le vrai) de la SG est clRed alors que mon émulation des lignes sélectionnées est clBlue. Ici, j'opère avec le bouton Ctrl du clavier enfoncé pour pouvoir faire des pseudo-sélections non contigües mais son usage est neutre dans mon problème.

    Ce qui est curieux, c'est la différence de traitement pratiquée par Lazarus aussi bien sous Win que sous Nux : après la deuxième ligne bleue pseudo-sélectionnée, j'utilise MouseWheel et cela fonctionne correctement : chaque ligne est sélectionnée (en clRed) une par une. Ma dernière pseudo-sélection est le bloc bleu... et là, l'usage de MouseWheel immédiatement après avoir relâché le bouton de la souris, allonge le bloc de "vraie" sélection (clRed) comme si, la StringGrid était restée en mode sélection et le restait après chaque ligne contrairement à la description précédente... donc en fait, comme si le OnMouseUp n'avait entraîné aucune action à ce niveau.

    Cela m'ennuirait quelque peu d'envisager une autre approche que celle de l'array de booleans qui de plus est simple conceptuellement parlant... et reste insensible aux variations du composant de base qui ont été nombreuses depuis la 0.9.28. Et même si sa maintenance l'exigeait, il resterait probablement très facilement adaptable. Mais à défaut...

    Cordialement. Gilles
    Dernière modification par Invité ; 13/10/2011 à 18h04. Motif: Meilleure formulation (enfin j'espère)

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

Discussions similaires

  1. [Lazarus] [0.9.26.2] StringGrid : multiselect
    Par Invité dans le forum Lazarus
    Réponses: 2
    Dernier message: 03/08/2009, 09h49
  2. StringGrid sort
    Par clovis dans le forum C++Builder
    Réponses: 4
    Dernier message: 20/10/2004, 21h46
  3. StringGrid, multiligne et word wrap
    Par Dajon dans le forum C++Builder
    Réponses: 7
    Dernier message: 17/09/2003, 17h15
  4. Multi lignes dans un StringGrids ?
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/11/2002, 23h15
  5. StringGrid et colonnes
    Par Delph dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/08/2002, 11h35

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