Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: GRID : Cellules en mode "édition" Sam 2 Oct 2021 - 17:23 | |
| Bonjour à tous ! Je vous propose une idée pour la saisie des données dans les cellules d’un GRID. Il suffit de cliquer sur une cellule pour que celle-ci passe en mode édition. Pour ce faire, le GRID sera assisté par un MEMO. Le système fonctionne avec toutes les tailles de cellules. - La touche ECHAP permet d’abandonner la saisie. - La touche ENTREE valide la saisie et la place dans le GRID. Important : Pour que le système fonctionne, il est nécessaire que la ligne 1 et la colonne 1 ne soient pas cachées. A tester ! Et peut-être à adopter ? - Code:
-
dim colonneGrid%, ligneGrid%, contenuCellule$, n%
label edition, controleSaisie, annulSaisie, redim
width 0,width(0) - width_client(0) + 785 height 0,height(0) - height_client(0) + 305 top 0,(screen_y - height(0)) / 2 left 0,(screen_x - width(0)) / 2 on_click 0,annulSaisie on_resize 0,redim
' creation du GRID et numerotation des lignes et colonnes grid 1 width 1,785 height 1,305 grid_column 1,12 grid_row 1,12 grid_column_sizing_on 1 grid_row_sizing_on 1 for n% = 1 to 11 grid_write 1,n%+1,1,n% next n% for n% = 1 to 11 grid_write 1,1,n%+1,n% next n% on_click 1,edition
' creation du champ de saisie memo 3 on_key_down 3,controleSaisie hide 3
end
edition: saisie() return
sub saisie() dim_local x%, y%, n% colonneGrid% = 0 ligneGrid% = 0 colonneGrid% = grid_x_to_column(1,mouse_x_position(1)) ligneGrid% = grid_y_to_row(1,mouse_y_position(1)) show 3 ' On applique les dimensions de la cellule au MEMO de saisie (MEMO 3) width 3,grid_one_column_width(1,colonneGrid%) height 3,grid_one_row_height(1,ligneGrid%) top 3,mouse_y_position(1) ' Calcul des coordonnees x et y pour afficher le champ de saisie (MEMO 3) for n% = 1 to colonneGrid% - 1 x% = x% + grid_one_column_width(1,n%) next n% left 3,x% +1 for n% = 1 to ligneGrid% - 1 y% = y% + grid_one_row_height(1,n%) next n% top 3,y% + 1
contenuCellule$ = grid_read$(1,ligneGrid%,colonneGrid%) set_focus 3 text 3,contenuCellule$ caret_position 3,len(contenuCellule$) end_sub
controleSaisie: if key_down_code = 13 :' touche ENTREE du clavier grid_write 1,ligneGrid%,colonneGrid%,text$(3) text 3,"" hide 3 end_if if key_down_code = 27 :' touche ECHAP du clavier text 3,"" hide 3 end_if return
annulSaisie: text 3,"" hide 3 return
redim: width 0,width(0) - width_client(0) + 785 height 0,height(0) - height_client(0) + 305 return | |
|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: GRID : Cellules en mode "édition" Sam 2 Oct 2021 - 17:56 | |
| Salut Minibug !
Oui, tout à fait ! Si le principe est retenu, chacun personnalise son application. Tout comme le contrôle de saisie, on peut le supprimer. Dans ce cas les données écrites dans une cellule n’ont pas besoin d’être validées. On peut aussi définir des règles de saisie pour chaque cellule…
Merci d’avoir testé ! | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: GRID : Cellules en mode "édition" Dim 3 Oct 2021 - 15:33 | |
| Carrément génial !!! Ouh, les belles choses qui vont pouvoir être faites avec ça ! Super ! | |
|
lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: GRID : Cellules en mode "édition" Dim 3 Oct 2021 - 19:24 | |
| Bonsoir à tous
@Marc
Sensas ton programme pour saisie dans un grid.
J'en ferai bon usage
Merci.
Bonne soirée | |
|
Contenu sponsorisé
| Sujet: Re: GRID : Cellules en mode "édition" | |
| |
|