Membres inscrits :2359
Membres en ligne : 0 Invités en ligne : 1 |
Bonjour à tous et à toutes,
Comme l'indique le titre de ce snippet, je vais vous indiquer comment, avec une méthode, obtenir la plage de données complète de la sélection d'un wxGrid. En gros, il suffit d'"additionner" les méthodes que nous proposent la classe wxGrid. [EDIT] : j'ai vu que si on sélectionnait une ligne ou une colonne entière avec les "headers" (c'est-à -dire les têtes de colonne), la fonction ne le prenait pas. Il suffit pour cela d'utiliser la méthode GetSelectedRows() et GetSelectedCols() [Re-EDIT] : Avoir la sélection avec wxSheet, ainsi que les coordonnées de la cellule courante [Re-EDIT 2] : Ajout d'une méthode pour avoir, séparément, un array qui contient toutes les cellules sélectionnés sauf celles qui apparaissent à l'écran et de l'autre, celles qui apparaissent à l'écran et qui sont sélectionnés ! (wxSheet)
Alors voici la méthode !
Grid est une classe dérivant de wxGrid Code Cpp:
Maintenant avec wxSheet, vous verrez que c'est bien plus simple ! Cependant, l'absence de documentation m'a obligé à rechercher ceci pendant des heures.... : Code Cpp:wxArraySheetCoords Grid::getSelection(){ Vous remarquerez qu'on utilise un wxArraySheetCoords qui contient en fait des wxSheetCoords Avoir les coordonnées de la case "focus" (Attention : il serait peut-être préférable pour éviter les bugs, de faire un HasFocus() ) : Code Cpp:
Et enfin, une fonction qui permet d'avoir tous les coordonnées sélectionnés sauf celles qui apparaissent à l'écran, et les coordonnées sélectionnées de celles qui apparaissent à l'écran (avec wxSheet) : Code Cpp:wxArraySheetCoords Grid::getSelectionScreen(wxArraySheetCoords *ArraySelection){
Elle retourne un wxGridCellCoordsArray qui agit comme un array. Celui-ci possède des wxGridCellCoords (http:/www.sandman.uklinux.net/wxgrid/do … oords.html) qui peuvent-être très facilement manipuler ! Au moins cette fonction rassemble tous les modes de sélection !
Si vous pouvez proposez des arrangements, faites donc ! J'aime bien voir le code des autres afin de pouvoir m'améliorer.
Il n'y a pas encore de commentaire pour ce snippet.
|