Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Déplacer la coloration bleue des cellules d'un grid | |
| | Auteur | Message |
---|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Déplacer la coloration bleue des cellules d'un grid Jeu 30 Sep 2021 - 16:25 | |
| Dans mon programme Poidsoramic (voir Utilitaires) j'ai buté sur une difficulté, je ne suis pas arrivé à déplacer par programmation interne la couleur de la cellule d'un grid qui se colore en bleu quand on clique dessus. J'ai dû remplacer cette balise par un contenu du genre ###, ce qui n'est pas très joli. Est-ce que quelqu'un sait comment on peut déplacer cette coloration bleue au moyen de la programmation ? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Jeu 30 Sep 2021 - 20:53 | |
| Bonsoir à tous ! Voici un code-source de démonstration pour déplacer la case bleue d'un GRID. Trois modes opératoires : - Le pavé directionnel du clavier ; - Le clic gauche souris ; - L'appui sur les boutons dédiés du programme. - Code:
-
' Programme de démonstration ' Mise en surbrillance de la cellule d'un GRID ' Marc - septembre 2021
dim res%, texte$
label redim label colorationParActionDesFlechesClavier label colorationParActionDuClicSouris label colorationParLesBoutons
dll_on "user32"
width 0,width(0) - width_client(0) + 400 height 0,height(0) - height_client(0) + 430 top 0,(screen_y - height(0)) / 2 left 0,(screen_x - width(0)) / 2 on_resize 0,redim
grid 1 top 1,150 left 1,20 width 1,350 height 1,150 on_click 1,colorationParActionDuClicSouris
button 2 :' flèche HAUT top 2,10 left 2,150 caption 2,"Haut" on_click 2,colorationParLesBoutons
button 3 :' Flèche DROITE top 3,50 left 3,200 caption 3,"Droite" on_click 3,colorationParLesBoutons
button 4 :' flèche BAS top 4,90 left 4,150 caption 4,"Bas" on_click 4,colorationParLesBoutons
button 5 :' Flèche GAUCHE top 5,50 left 5,100 caption 5,"Gauche" on_click 5,colorationParLesBoutons
alpha 6 top 6,320 left 6,20 texte$ = "Déplacement de la case bleue du GRID par action sur :" + chr$(13) texte$ = texte$ + " - les flèches du clavier ;" + chr$(13) texte$ = texte$ + " - les boutons HAUT, BAS, DROITE, GAUCHE ci-dessus ;" + chr$(13) texte$ = texte$ + " - le clic gauche de la souris."
caption 6,texte$
set_focus 0
on_key_down 0,colorationParActionDesFlechesClavier
end
' ------------------------------------------------------------------------------
colorationParActionDesFlechesClavier: set_focus 1 select key_down_code case 38 :' HAUT res% = dll_call4("keybd_event",38,0,0,0)
case 39 :' DROITE res% = dll_call4("keybd_event",39,0,0,0)
case 40 :' BAS res% = dll_call4("keybd_event",40,0,0,0)
case 37 :' GAUCHE res% = dll_call4("keybd_event",37,0,0,0) end_select display set_focus 0 return
' ------------------------------------------------------------------------------
colorationParActionDuClicSouris: set_focus 0 return
' ------------------------------------------------------------------------------
colorationParLesBoutons: set_focus 1 select number_click case 2 :' HAUT res% = dll_call4("keybd_event",38,0,0,0)
case 3 :' DROITE res% = dll_call4("keybd_event",39,0,0,0)
case 4 :' BAS res% = dll_call4("keybd_event",40,0,0,0)
case 5 :' GAUCHE res% = dll_call4("keybd_event",37,0,0,0) end_select display set_focus 0 return
' ------------------------------------------------------------------------------
redim: width 0,width(0) - width_client(0) + 400 height 0,height(0) - height_client(0) + 430 return
Bonne soirée ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Ven 1 Oct 2021 - 0:35 | |
| Très belle solution, Marc ! Je garde ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Ven 1 Oct 2021 - 9:11 | |
| J'ai étendu légèrement ta solution, Marc. J'ai ajouté la gestion des touches suivantes: - Citation :
- "Début" - saut à la première cellule de la ligne actuelle
"Fin" - saut à la dernière cellule de la ligne actuelle "Page précédente" - saut à la première cellule de la colonne actuelle "Page suivante" - saut à la dernière cellule de la page actuelle Et, en combinant ces fonctioins 2 par deux, j'ai ajouté deux boutons: - Code:
-
"Haut gauche - saut à la première cellule en haut à gauche "Bas droite" - saut à la dernière cellule en bas à droite Voici le code: - Code:
-
' test_GRID_deplacement_cellule_active.bas
' Programme de démonstration par Marc ' Mise en surbrillance de la cellule d'un GRID ' Marc - septembre 2021
dim res%, texte$
label redim label colorationParActionDesFlechesClavier label colorationParActionDuClicSouris label colorationParLesBoutons
dll_on "user32"
width 0,width(0) - width_client(0) + 400 height 0,height(0) - height_client(0) + 430 top 0,(screen_y - height(0)) / 2 left 0,(screen_x - width(0)) / 2 on_resize 0,redim
grid 1 top 1,150 left 1,20 width 1,350 height 1,150 on_click 1,colorationParActionDuClicSouris
button 2 :' flèche HAUT top 2,10 left 2,150 caption 2,"Haut" on_click 2,colorationParLesBoutons
button 3 :' Flèche DROITE top 3,50 left 3,200 caption 3,"Droite" on_click 3,colorationParLesBoutons
button 4 :' flèche BAS top 4,90 left 4,150 caption 4,"Bas" on_click 4,colorationParLesBoutons
button 5 :' Flèche GAUCHE top 5,50 left 5,100 caption 5,"Gauche" on_click 5,colorationParLesBoutons
button 11 :' HAUT GAUCHE top 11,10 left 11,10 caption 11,"Haut gauche" on_click 11,colorationParLesBoutons
button 12 :' BAS DROITE top 12,90 left 12,290 caption 12,"Bas droite" on_click 12,colorationParLesBoutons
alpha 6 top 6,320 left 6,20 texte$ = "Déplacement de la case bleue du GRID par action sur :" + chr$(13) texte$ = texte$ + " - les flèches du clavier ;" + chr$(13) texte$ = texte$ + " - les boutons HAUT, BAS, DROITE, GAUCHE ci-dessus ;" + chr$(13) texte$ = texte$ + " - le clic gauche de la souris."
caption 6,texte$
set_focus 0
on_key_down 0,colorationParActionDesFlechesClavier
end
' ------------------------------------------------------------------------------
colorationParActionDesFlechesClavier: set_focus 1 select key_down_code case 33 :' TOP res% = dll_call4("keybd_event",33,0,0,0)
case 34 :' BOTTOM res% = dll_call4("keybd_event",34,0,0,0)
case 35 :' DEBUT res% = dll_call4("keybd_event",35,0,0,0)
case 36 :' FIN res% = dll_call4("keybd_event",36,0,0,0)
case 38 :' HAUT res% = dll_call4("keybd_event",38,0,0,0)
case 39 :' DROITE res% = dll_call4("keybd_event",39,0,0,0)
case 40 :' BAS res% = dll_call4("keybd_event",40,0,0,0)
case 37 :' GAUCHE res% = dll_call4("keybd_event",37,0,0,0) end_select display set_focus 0 return
' ------------------------------------------------------------------------------
colorationParActionDuClicSouris: set_focus 0 return
' ------------------------------------------------------------------------------
colorationParLesBoutons: set_focus 1 select number_click case 2 :' HAUT res% = dll_call4("keybd_event",38,0,0,0)
case 3 :' DROITE res% = dll_call4("keybd_event",39,0,0,0)
case 4 :' BAS res% = dll_call4("keybd_event",40,0,0,0)
case 5 :' GAUCHE res% = dll_call4("keybd_event",37,0,0,0)
case 11 :' HAUT GAUCHE res% = dll_call4("keybd_event",33,0,0,0) : ' TOP res% = dll_call4("keybd_event",36,0,0,0) : ' DEBUT
case 12 :' BAS DROITE res% = dll_call4("keybd_event",34,0,0,0) : ' BOTTOM res% = dll_call4("keybd_event",35,0,0,0) : ' FIN
end_select display set_focus 0 return
' ------------------------------------------------------------------------------
redim: width 0,width(0) - width_client(0) + 400 height 0,height(0) - height_client(0) + 430 return
| |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Ven 1 Oct 2021 - 15:40 | |
| Ouaih, génial, merci. Je vais de ce pas modifier mon programme en conséquence. | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Ven 1 Oct 2021 - 17:25 | |
| Ah, vous allez dire que j'exagère...? Mais est-ce que vous auriez « Saut à la cellule X,Y » ? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Ven 1 Oct 2021 - 17:44 | |
| Facile...
Enfin, pas directement. Tu sautes à un point connu (le début en haut à gauche par exemple), puis du fais autant de "flèches en bas" que le numero de ligne -1, et idem pour la colonne.
Je ne connais malheureusement pas de solution directe pour cela. Toutefois, si le tableau est grand, cela risque dêtre pénalisant pour un saut vers la fin cu tableau ou vers la fin de la ligne. Mais comme to connais (ou tu peux savoir) quelle est le nombre de lignes et/ou de colonnes, tu peux aussi sauter tout à la fin du tableau, puis remonter par "flèche en haut" autant que nécessaire, etc.
Ces contraintes de sélection et de positionnement étaient la raison initiale pour laquelle j'ai développé mes propres composants de type GRID, auquels j'ai ensuite ajouté une multitude de fonctions. | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Ven 1 Oct 2021 - 19:07 | |
| Ok, merci. Ce qui est curieux, avec ces dll32 c'est que si on met l'utilisation de ces dll dans une sub, cela semble modifier certaines choses comme le contenu de certaines variables. C'est vraiment très bizarre ??????????? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Ven 1 Oct 2021 - 22:43 | |
| Bonsoir à tous ! Voici un autre exemple de déplacement à travers un GRID, ici de 100 x 100 cellules. Vous pouvez vous déplacer aux quatre coins du GRID en cliquant sur les pictogrammes : - Les huit premiers font avancer d'une case à la fois, à l'horizontal, à la verticale ou en diagonale ; - Le groupe suivant, composé de six pictogrammes, permet un saut directement aux extrémités du GRID ; - Les deux derniers permettent de monter ou descendre d'une page. Cette démonstration ne fonctionne que sous Windows. Elle est tributaire de la DLL "user32". La cellule active d'un GRID prend sa couleur bleue uniquement lorsque le GRID n'a pas le focus. - Code:
-
dim res%
label deplacementParLesBoutons label selectionParClicSouris label deplacementParLeClavier label redim
dll_on "user32"
width 0,width(0) - width_client(0) + 800 height 0,height(0) - height_client(0) + 600 top 0,(screen_y - height(0)) / 2 left 0,(screen_x - width(0)) / 2 on_resize 0,redim
creerGrid()
RemplissageCoordonneesGrid()
legende(480,420)
creerBoutonFlecheHaut(135,420) :' Déplacement d'une case vers le haut creerBoutonFlecheHautDroite(180,420) :' Déplacement en diagonale d'une case vers le haut et à droite creerBoutonFlecheGauche(180,465):' Déplacement d'une case vers la droite creerBoutonFlecheBasDroite(180,510):' Déplacement en diagonale d'une case vers le bas à droite creerBoutonFlecheBas(135,510):' Déplacement d'une case vers le bas creerBoutonFlecheBasGauche(90,510):' Déplacement en diagonale d'une case vers le bas à gauche creerBoutonFlcheGauche(90,465):' Déplacement d'une case vers la gauche creerBoutonFlecheHautGauche(90,420):' Déplacement en diagonale d'une case vers le haut à gauche
creerBoutonDebutGrid(275,420) :' aller à la première cellule en haut à gauche du GRID creerBoutonHautDroiteGrid(320,420) :' aller à la cellule tout en haut à droite du GRID creerBoutonFinGrid(320,510) :' aller à la dernière cellule en bas à droite du GRID creerBoutonBasGaucheGrid(275,510) :' aller à la dernière cellule en bas à gauche du GRID creerBoutonDebutLigne(275,465) :' aller en début de ligne creerBoutonFinLigne(320,465) :' aller en fin de ligne
creerBoutonPageUp(410,440):' Remonter d'une page creerBoutonPageDown(410,495):' Descendre d'une page
set_focus 0
on_key_down 0,deplacementParLeClavier
end
sub creerGrid() grid 1 width 1,800 height 1,400 grid_column 1,100 grid_row 1,100 on_click 1,selectionParClicSouris end_sub
sub RemplissageCoordonneesGrid() dim_local n% for n% = 1 to 99 grid_write 1,n%+1,1,n% next n%
for n% = 1 to 99 grid_write 1,1,n%+1,n% next n% end_sub
sub legende(x%,y%) dim_local texte$ alpha 2 left 2,x% top 2,y% texte$ = "Déplacement / sélection de la cellule active bleue du GRID par :" + chr$(13) + chr$(13) texte$ = texte$ + " - les flèches du clavier ;" + chr$(13) + chr$(13) texte$ = texte$ + " - les seize boutons ci-contre ;" + chr$(13) + chr$(13) texte$ = texte$ + " - le clic gauche de la souris." caption 2,texte$ end_sub
sub creerBoutonFlecheHaut(x%,y%) picture 18 left 18,x% top 18,y% width 18,30 height 18,30 color 18,80,80,80 2d_target_is 18 2d_pen_color 255,255,0 2d_line 14,10,4,20 2d_line 15,10,25,20 2d_line 5,19,25,19 2d_flood 14,14,255,255,0 cursor_point 18 on_click 18,deplacementParLesBoutons end_sub
sub creerBoutonFlecheHautDroite(x%,y%) picture 19 left 19,x% top 19,y% width 19,30 height 19,30 color 19,80,80,80 2d_target_is 19 2d_pen_color 255,255,0 2d_line 6,9,21,9 2d_line 20,9,20,24 2d_line 6,9,21,24 2d_flood 14,14,255,255,0 cursor_point 19 on_click 19,deplacementParLesBoutons end_sub
sub creerBoutonFlecheGauche(x%,y%) picture 20 left 20,x% top 20,y% width 20,30 height 20,30 color 20,80,80,80 2d_target_is 20 2d_pen_color 255,255,0 2d_line 10,5,10,25 2d_line 10,5,20,15 2d_line 19,15,9,25 2d_flood 14,14,255,255,0 cursor_point 20 on_click 20,deplacementParLesBoutons end_sub
sub creerBoutonFlecheBasDroite(x%,y%) picture 21 left 21,x% top 21,y% width 21,30 height 21,30 color 21,80,80,80 2d_target_is 21 2d_pen_color 255,255,0 2d_line 20,6,5,21 2d_line 20,6,20,21 2d_line 6,20,21,20 2d_flood 14,14,255,255,0 cursor_point 21 on_click 21,deplacementParLesBoutons end_sub
sub creerBoutonFlecheBas(x%,y%) picture 22 left 22,x% top 22,y% width 22,30 height 22,30 color 22,80,80,80 2d_target_is 22 2d_pen_color 255,255,0 2d_line 5,10,25,10 2d_line 5,10,15,20 2d_line 24,10,14,20 2d_flood 14,14,255,255,0 cursor_point 22 on_click 22,deplacementParLesBoutons end_sub
sub creerBoutonFlecheBasGauche(x%,y%) picture 23 left 23,x% top 23,y% width 23,30 height 23,30 color 23,80,80,80 2d_target_is 23 2d_pen_color 255,255,0 2d_line 9,6,9,21 2d_line 9,20,24,20 2d_line 9,6,24,21 2d_flood 14,14,255,255,0 cursor_point 23 on_click 23,deplacementParLesBoutons end_sub
sub creerBoutonFlcheGauche(x%,y%) picture 24 left 24,x% top 24,y% width 24,30 height 24,30 color 24,80,80,80 2d_target_is 24 2d_pen_color 255,255,0 2d_line 10,14,20,4 2d_line 10,15,20,25 2d_line 19,5,19,25 2d_flood 14,14,255,255,0 cursor_point 24 on_click 24,deplacementParLesBoutons end_sub
sub creerBoutonFlecheHautGauche(x%,y%) picture 25 left 25,x% top 25,y% width 25,30 height 25,30 color 25,80,80,80 2d_target_is 25 2d_pen_color 255,255,0 2d_line 9,9,24,9 2d_line 9,9,9,24 2d_line 23,9,8,24 2d_flood 14,14,255,255,0 cursor_point 25 on_click 25,deplacementParLesBoutons end_sub
sub creerBoutonDebutGrid(x%,y%) picture 10 left 10,x% top 10,y% width 10,30 height 10,30 color 10,80,80,80 2d_target_is 10 2d_pen_color 255,255,0 2d_line 4,4,19,4 2d_line 4,4,4,19 2d_line 18,4,3,19 2d_flood 8,8,255,255,0 2d_line 13,13,28,13 2d_line 13,13,13,28 2d_line 27,13,12,28 2d_flood 17,17,255,255,0 cursor_point 10 on_click 10,deplacementParLesBoutons end_sub
sub creerBoutonHautDroiteGrid(x%,y%) picture 12 left 12,x% top 12,y% width 12,30 height 12,30 color 12,80,80,80 2d_target_is 12 2d_pen_color 255,255,0 2d_line 11,4,26,4 2d_line 25,4,25,19 2d_line 11,4,26,19 2d_flood 21,8,255,255,0 2d_line 2,13,17,13 2d_line 16,13,16,28 2d_line 2,13,17,28 2d_flood 12,17,255,255,0 cursor_point 12 on_click 12,deplacementParLesBoutons end_sub
sub creerBoutonFinGrid(x%,y%) picture 13 left 13,x% top 13,y% width 13,30 height 13,30 color 13,80,80,80 2d_target_is 13 2d_pen_color 255,255,0 2d_line 16,2,1,17 2d_line 16,2,16,17 2d_line 2,16,17,16 2d_flood 12,12,255,255,0 2d_line 24,11,10,26 2d_line 25,11,25,26 2d_line 11,25,26,25 2d_flood 21,21,255,255,0 cursor_point 13 on_click 13,deplacementParLesBoutons end_sub
sub creerBoutonBasGaucheGrid(x%,y%) picture 11 left 11,x% top 11,y% width 11,30 height 11,30 color 11,80,80,80 2d_target_is 11 2d_pen_color 255,255,0 2d_line 13,2,13,17 2d_line 13,16,28,16 2d_line 13,2,28,17 2d_flood 17,12,255,255,0 2d_line 4,11,4,26 2d_line 4,25,19,25 2d_line 4,11,19,26 2d_flood 8,21,255,255,0 cursor_point 11 on_click 11,deplacementParLesBoutons end_sub
sub creerBoutonDebutLigne(x%,y%) picture 14 left 14,x% top 14,y% width 14,30 height 14,30 color 14,80,80,80 2d_target_is 14 2d_pen_color 255,255,0 2d_line 3,14,13,4 2d_line 3,15,13,25 2d_line 12,5,12,25 2d_flood 8,15,255,255,0 2d_line 16,14,26,4 2d_line 16,15,26,25 2d_line 25,5,25,25 2d_flood 21,15,255,255,0 cursor_point 14 on_click 14,deplacementParLesBoutons end_sub
sub creerBoutonFinLigne(x%,y%) picture 15 left 15,x% top 15,y% width 15,30 height 15,30 color 15,80,80,80 2d_target_is 15 2d_pen_color 255,255,0 2d_line 4,5,4,25 2d_line 4,5,14,15 2d_line 13,15,3,25 2d_flood 8,15,255,255,0 2d_line 17,5,17,25 2d_line 17,5,27,15 2d_line 17,24,27,14 2d_flood 21,15,255,255,0 cursor_point 15 on_click 15,deplacementParLesBoutons end_sub
sub creerBoutonPageUp(x%,y%) picture 16 left 16,x% top 16,y% width 16,30 height 16,30 color 16,80,80,80 2d_target_is 16 2d_pen_color 255,255,0 2d_line 5,12,15,2 2d_line 15,3,25,13 2d_line 5,12,25,12 2d_flood 15,8,255,255,0 2d_rectangle 14,13,16,26 2d_rectangle 5,19,25,21 2d_rectangle 5,24,25,26 cursor_point 16 on_click 16,deplacementParLesBoutons end_sub
sub creerBoutonPageDown(x%,y%) picture 17 left 17,x% top 17,y% width 17,30 height 17,30 color 17,80,80,80 2d_target_is 17 2d_pen_color 255,255,0 2d_line 5,17,25,17 2d_line 5,17,15,27 2d_line 15,26,25,16 2d_flood 14,20,255,255,0 2d_rectangle 5,4,25,6 2d_rectangle 5,9,25,11 2d_rectangle 14,4,16,17 cursor_point 17 on_click 17,deplacementParLesBoutons end_sub
deplacementParLesBoutons: set_focus 1 select number_click case 10 :' TOUT EN HAUT A GAUCHE (CTRL + DEBUT) res% = dll_call4("keybd_event",17,0,0,0) res% = dll_call4("keybd_event",36,0,0,0) res% = dll_call4("keybd_event",17,0,2,0)
case 11 :' TOUT EN BAS A GAUCHE (CTRL + FIN puis DEBUT) res% = dll_call4("keybd_event",17,0,0,0) res% = dll_call4("keybd_event",35,0,0,0) res% = dll_call4("keybd_event",17,0,2,0) res% = dll_call4("keybd_event",36,0,0,0) case 12 :' TOUT EN HAUT A DROITE (CTRL + DEBUT puis FIN) res% = dll_call4("keybd_event",17,0,0,0) res% = dll_call4("keybd_event",36,0,0,0) res% = dll_call4("keybd_event",17,0,2,0) res% = dll_call4("keybd_event",35,0,0,0)
case 13 :' TOUT EN BAS A DROITE (CTRL + FIN puis FIN) res% = dll_call4("keybd_event",17,0,0,0) res% = dll_call4("keybd_event",35,0,0,0) res% = dll_call4("keybd_event",17,0,2,0) res% = dll_call4("keybd_event",35,0,0,0)
case 14 :' DEBUT DE LIGNE res% = dll_call4("keybd_event",36,0,0,0) case 15 :' FIN DE LIGNE res% = dll_call4("keybd_event",35,0,0,0)
case 16 :' PAGE UP res% = dll_call4("keybd_event",33,0,0,0) case 17 :' PAGE DOWN res% = dll_call4("keybd_event",34,0,0,0)
case 18 :' HAUT res% = dll_call4("keybd_event",38,0,0,0)
case 19 :' HAUT DROITE res% = dll_call4("keybd_event",38,0,0,0) res% = dll_call4("keybd_event",39,0,0,0) case 20 :' DROITE res% = dll_call4("keybd_event",39,0,0,0)
case 21 :' BAS DROITE res% = dll_call4("keybd_event",40,0,0,0) res% = dll_call4("keybd_event",39,0,0,0) case 22 :' BAS res% = dll_call4("keybd_event",40,0,0,0)
case 23 :' BAS GAUCHE res% = dll_call4("keybd_event",37,0,0,0) res% = dll_call4("keybd_event",40,0,0,0) case 24 :' GAUCHE res% = dll_call4("keybd_event",37,0,0,0)
case 25 :' HAUT GAUCHE res% = dll_call4("keybd_event",38,0,0,0) res% = dll_call4("keybd_event",37,0,0,0) end_select display set_focus 0 return
selectionParClicSouris: set_focus 0 return
deplacementParLeClavier: set_focus 1 select key_down_code case 33 :' PAGE UP res% = dll_call4("keybd_event",33,0,0,0) case 34 :' PAGE DOWN res% = dll_call4("keybd_event",34,0,0,0)
case 35 :' FIN DE LIGNE res% = dll_call4("keybd_event",35,0,0,0)
case 36 :' DEBUT DE LIGNE res% = dll_call4("keybd_event",36,0,0,0)
case 38 :' HAUT res% = dll_call4("keybd_event",38,0,0,0)
case 39 :' DROITE res% = dll_call4("keybd_event",39,0,0,0)
case 40 :' BAS res% = dll_call4("keybd_event",40,0,0,0)
case 37 :' GAUCHE res% = dll_call4("keybd_event",37,0,0,0) end_select display set_focus 0 return
redim: width 0,width(0) - width_client(0) + 800 height 0,height(0) - height_client(0) + 600 return Bonne soirée ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Ven 1 Oct 2021 - 23:03 | |
| Bravo ! Démonstration impeccable ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Sam 2 Oct 2021 - 10:36 | |
| Félicitation pour ton code Marc ! C'est vrai que Windows regorge de dll pleines de surprises quand on les connait ! Très bonne idée aussi les icones dessinées. Je sais que tu utilises régulièrement cette technique. Pour ma part je ne maitrise pas assez les commandes 2D. Et pourquoi pas un petit utilitaire de création d'icones qui converti en ligne de code c'est peut être une idée non ?! Bon je m'écarte du sujet... En attendant Bravo pour ta solution ! | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Mar 5 Oct 2021 - 1:06 | |
| | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Mar 5 Oct 2021 - 13:05 | |
| @ Marc : Je ne sais pas ce que tu prends comme vitamines, mais je veux les mêmes !!! | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Mar 5 Oct 2021 - 23:13 | |
| Bonsoir à tous ! Je vous propose la même démonstration en utilisant cette fois-ci la DLL de Klaus, kgf.dll, au lieu de user32.dll - Code:
-
dim res%, hnd%
label deplacementParLesBoutons label selectionParClicSouris label deplacementParLeClavier label redim
dll_on "KGF"
width 0,width(0) - width_client(0) + 800 height 0,height(0) - height_client(0) + 600 top 0,(screen_y - height(0)) / 2 left 0,(screen_x - width(0)) / 2 on_resize 0,redim
creerGrid()
hnd% = handle(1) :' handle de l'objet "GRID 1"
RemplissageCoordonneesGrid()
legende(480,420)
creerBoutonFlecheHaut(135,420) :' Déplacement d'une case vers le haut creerBoutonFlecheHautDroite(180,420) :' Déplacement en diagonale d'une case vers le haut et à droite creerBoutonFlecheGauche(180,465):' Déplacement d'une case vers la droite creerBoutonFlecheBasDroite(180,510):' Déplacement en diagonale d'une case vers le bas à droite creerBoutonFlecheBas(135,510):' Déplacement d'une case vers le bas creerBoutonFlecheBasGauche(90,510):' Déplacement en diagonale d'une case vers le bas à gauche creerBoutonFlcheGauche(90,465):' Déplacement d'une case vers la gauche creerBoutonFlecheHautGauche(90,420):' Déplacement en diagonale d'une case vers le haut à gauche
creerBoutonDebutGrid(275,420) :' aller à la première cellule en haut à gauche du GRID creerBoutonHautDroiteGrid(320,420) :' aller à la cellule tout en haut à droite du GRID creerBoutonFinGrid(320,510) :' aller à la dernière cellule en bas à droite du GRID creerBoutonBasGaucheGrid(275,510) :' aller à la dernière cellule en bas à gauche du GRID creerBoutonDebutLigne(275,465) :' aller en début de ligne creerBoutonFinLigne(320,465) :' aller en fin de ligne
creerBoutonPageUp(410,440):' Remonter d'une page creerBoutonPageDown(410,495):' Descendre d'une page
set_focus 0
on_key_down 0,deplacementParLeClavier
end
sub creerGrid() grid 1 width 1,800 height 1,400 grid_column 1,100 grid_row 1,100 on_click 1,selectionParClicSouris end_sub
sub RemplissageCoordonneesGrid() dim_local n% for n% = 1 to 99 grid_write 1,n%+1,1,n% next n%
for n% = 1 to 99 grid_write 1,1,n%+1,n% next n% end_sub
sub legende(x%,y%) dim_local texte$ alpha 2 left 2,x% top 2,y% texte$ = "Déplacement / sélection de la cellule active bleue du GRID par :" + chr$(13) + chr$(13) texte$ = texte$ + " - les flèches du clavier ;" + chr$(13) + chr$(13) texte$ = texte$ + " - les seize boutons ci-contre ;" + chr$(13) + chr$(13) texte$ = texte$ + " - le clic gauche de la souris." caption 2,texte$ end_sub
sub creerBoutonFlecheHaut(x%,y%) picture 18 left 18,x% top 18,y% width 18,30 height 18,30 color 18,80,80,80 2d_target_is 18 2d_pen_color 255,255,0 2d_line 14,10,4,20 2d_line 15,10,25,20 2d_line 5,19,25,19 2d_flood 14,14,255,255,0 cursor_point 18 on_click 18,deplacementParLesBoutons end_sub
sub creerBoutonFlecheHautDroite(x%,y%) picture 19 left 19,x% top 19,y% width 19,30 height 19,30 color 19,80,80,80 2d_target_is 19 2d_pen_color 255,255,0 2d_line 6,9,21,9 2d_line 20,9,20,24 2d_line 6,9,21,24 2d_flood 14,14,255,255,0 cursor_point 19 on_click 19,deplacementParLesBoutons end_sub
sub creerBoutonFlecheGauche(x%,y%) picture 20 left 20,x% top 20,y% width 20,30 height 20,30 color 20,80,80,80 2d_target_is 20 2d_pen_color 255,255,0 2d_line 10,5,10,25 2d_line 10,5,20,15 2d_line 19,15,9,25 2d_flood 14,14,255,255,0 cursor_point 20 on_click 20,deplacementParLesBoutons end_sub
sub creerBoutonFlecheBasDroite(x%,y%) picture 21 left 21,x% top 21,y% width 21,30 height 21,30 color 21,80,80,80 2d_target_is 21 2d_pen_color 255,255,0 2d_line 20,6,5,21 2d_line 20,6,20,21 2d_line 6,20,21,20 2d_flood 14,14,255,255,0 cursor_point 21 on_click 21,deplacementParLesBoutons end_sub
sub creerBoutonFlecheBas(x%,y%) picture 22 left 22,x% top 22,y% width 22,30 height 22,30 color 22,80,80,80 2d_target_is 22 2d_pen_color 255,255,0 2d_line 5,10,25,10 2d_line 5,10,15,20 2d_line 24,10,14,20 2d_flood 14,14,255,255,0 cursor_point 22 on_click 22,deplacementParLesBoutons end_sub
sub creerBoutonFlecheBasGauche(x%,y%) picture 23 left 23,x% top 23,y% width 23,30 height 23,30 color 23,80,80,80 2d_target_is 23 2d_pen_color 255,255,0 2d_line 9,6,9,21 2d_line 9,20,24,20 2d_line 9,6,24,21 2d_flood 14,14,255,255,0 cursor_point 23 on_click 23,deplacementParLesBoutons end_sub
sub creerBoutonFlcheGauche(x%,y%) picture 24 left 24,x% top 24,y% width 24,30 height 24,30 color 24,80,80,80 2d_target_is 24 2d_pen_color 255,255,0 2d_line 10,14,20,4 2d_line 10,15,20,25 2d_line 19,5,19,25 2d_flood 14,14,255,255,0 cursor_point 24 on_click 24,deplacementParLesBoutons end_sub
sub creerBoutonFlecheHautGauche(x%,y%) picture 25 left 25,x% top 25,y% width 25,30 height 25,30 color 25,80,80,80 2d_target_is 25 2d_pen_color 255,255,0 2d_line 9,9,24,9 2d_line 9,9,9,24 2d_line 23,9,8,24 2d_flood 14,14,255,255,0 cursor_point 25 on_click 25,deplacementParLesBoutons end_sub
sub creerBoutonDebutGrid(x%,y%) picture 10 left 10,x% top 10,y% width 10,30 height 10,30 color 10,80,80,80 2d_target_is 10 2d_pen_color 255,255,0 2d_line 4,4,19,4 2d_line 4,4,4,19 2d_line 18,4,3,19 2d_flood 8,8,255,255,0 2d_line 13,13,28,13 2d_line 13,13,13,28 2d_line 27,13,12,28 2d_flood 17,17,255,255,0 cursor_point 10 on_click 10,deplacementParLesBoutons end_sub
sub creerBoutonHautDroiteGrid(x%,y%) picture 12 left 12,x% top 12,y% width 12,30 height 12,30 color 12,80,80,80 2d_target_is 12 2d_pen_color 255,255,0 2d_line 11,4,26,4 2d_line 25,4,25,19 2d_line 11,4,26,19 2d_flood 21,8,255,255,0 2d_line 2,13,17,13 2d_line 16,13,16,28 2d_line 2,13,17,28 2d_flood 12,17,255,255,0 cursor_point 12 on_click 12,deplacementParLesBoutons end_sub
sub creerBoutonFinGrid(x%,y%) picture 13 left 13,x% top 13,y% width 13,30 height 13,30 color 13,80,80,80 2d_target_is 13 2d_pen_color 255,255,0 2d_line 16,2,1,17 2d_line 16,2,16,17 2d_line 2,16,17,16 2d_flood 12,12,255,255,0 2d_line 24,11,10,26 2d_line 25,11,25,26 2d_line 11,25,26,25 2d_flood 21,21,255,255,0 cursor_point 13 on_click 13,deplacementParLesBoutons end_sub
sub creerBoutonBasGaucheGrid(x%,y%) picture 11 left 11,x% top 11,y% width 11,30 height 11,30 color 11,80,80,80 2d_target_is 11 2d_pen_color 255,255,0 2d_line 13,2,13,17 2d_line 13,16,28,16 2d_line 13,2,28,17 2d_flood 17,12,255,255,0 2d_line 4,11,4,26 2d_line 4,25,19,25 2d_line 4,11,19,26 2d_flood 8,21,255,255,0 cursor_point 11 on_click 11,deplacementParLesBoutons end_sub
sub creerBoutonDebutLigne(x%,y%) picture 14 left 14,x% top 14,y% width 14,30 height 14,30 color 14,80,80,80 2d_target_is 14 2d_pen_color 255,255,0 2d_line 3,14,13,4 2d_line 3,15,13,25 2d_line 12,5,12,25 2d_flood 8,15,255,255,0 2d_line 16,14,26,4 2d_line 16,15,26,25 2d_line 25,5,25,25 2d_flood 21,15,255,255,0 cursor_point 14 on_click 14,deplacementParLesBoutons end_sub
sub creerBoutonFinLigne(x%,y%) picture 15 left 15,x% top 15,y% width 15,30 height 15,30 color 15,80,80,80 2d_target_is 15 2d_pen_color 255,255,0 2d_line 4,5,4,25 2d_line 4,5,14,15 2d_line 13,15,3,25 2d_flood 8,15,255,255,0 2d_line 17,5,17,25 2d_line 17,5,27,15 2d_line 17,24,27,14 2d_flood 21,15,255,255,0 cursor_point 15 on_click 15,deplacementParLesBoutons end_sub
sub creerBoutonPageUp(x%,y%) picture 16 left 16,x% top 16,y% width 16,30 height 16,30 color 16,80,80,80 2d_target_is 16 2d_pen_color 255,255,0 2d_line 5,12,15,2 2d_line 15,3,25,13 2d_line 5,12,25,12 2d_flood 15,8,255,255,0 2d_rectangle 14,13,16,26 2d_rectangle 5,19,25,21 2d_rectangle 5,24,25,26 cursor_point 16 on_click 16,deplacementParLesBoutons end_sub
sub creerBoutonPageDown(x%,y%) picture 17 left 17,x% top 17,y% width 17,30 height 17,30 color 17,80,80,80 2d_target_is 17 2d_pen_color 255,255,0 2d_line 5,17,25,17 2d_line 5,17,15,27 2d_line 15,26,25,16 2d_flood 14,20,255,255,0 2d_rectangle 5,4,25,6 2d_rectangle 5,9,25,11 2d_rectangle 14,4,16,17 cursor_point 17 on_click 17,deplacementParLesBoutons end_sub
deplacementParLesBoutons: set_focus 1 select number_click case 10 :' TOUT EN HAUT A GAUCHE (CTRL + DEBUT) res% = dll_call5("SendSingleKey",hnd%,36,1,0,0)
case 11 :' TOUT EN BAS A GAUCHE (CTRL + FIN puis DEBUT) res% = dll_call5("SendSingleKey",hnd%,35,1,0,0) res% = dll_call5("SendSingleKey",hnd%,36,0,0,0) case 12 :' TOUT EN HAUT A DROITE (CTRL + DEBUT puis FIN) res% = dll_call5("SendSingleKey",hnd%,36,1,0,0) res% = dll_call5("SendSingleKey",hnd%,35,0,0,0)
case 13 :' TOUT EN BAS A DROITE (CTRL + FIN puis FIN) res% = dll_call5("SendSingleKey",hnd%,35,1,0,0) res% = dll_call5("SendSingleKey",hnd%,35,0,0,0)
case 14 :' DEBUT DE LIGNE res% = dll_call5("SendSingleKey",hnd%,36,0,0,0)
case 15 :' FIN DE LIGNE res% = dll_call5("SendSingleKey",hnd%,35,0,0,0)
case 16 :' PAGE UP res% = dll_call5("SendSingleKey",hnd%,33,0,0,0)
case 17 :' PAGE DOWN res% = dll_call5("SendSingleKey",hnd%,34,0,0,0)
case 18 :' HAUT res% = dll_call5("SendSingleKey",hnd%,38,0,0,0)
case 19 :' HAUT DROITE res% = dll_call5("SendSingleKey",hnd%,38,0,0,0) res% = dll_call5("SendSingleKey",hnd%,39,0,0,0)
case 20 :' DROITE res% = dll_call5("SendSingleKey",hnd%,39,0,0,0)
case 21 :' BAS DROITE res% = dll_call5("SendSingleKey",hnd%,40,0,0,0) res% = dll_call5("SendSingleKey",hnd%,39,0,0,0) case 22 :' BAS res% = dll_call5("SendSingleKey",hnd%,40,0,0,0)
case 23 :' BAS GAUCHE res% = dll_call5("SendSingleKey",hnd%,37,0,0,0) res% = dll_call5("SendSingleKey",hnd%,40,0,0,0)
case 24 :' GAUCHE res% = dll_call5("SendSingleKey",hnd%,37,0,0,0)
case 25 :' HAUT GAUCHE res% = dll_call5("SendSingleKey",hnd%,38,0,0,0) res% = dll_call5("SendSingleKey",hnd%,37,0,0,0) end_select display set_focus 0 return
selectionParClicSouris: set_focus 0 return
deplacementParLeClavier: set_focus 1 select key_down_code case 33 :' PAGE UP res% = dll_call5("SendSingleKey",hnd%,33,0,0,0) case 34 :' PAGE DOWN res% = dll_call5("SendSingleKey",hnd%,34,0,0,0)
case 35 :' FIN DE LIGNE res% = dll_call5("SendSingleKey",hnd%,35,0,0,0)
case 36 :' DEBUT DE LIGNE res% = dll_call5("SendSingleKey",hnd%,36,0,0,0)
case 38 :' HAUT res% = dll_call5("SendSingleKey",hnd%,38,0,0,0)
case 39 :' DROITE res% = dll_call5("SendSingleKey",hnd%,39,0,0,0)
case 40 :' BAS res% = dll_call5("SendSingleKey",hnd%,40,0,0,0)
case 37 :' GAUCHE res% = dll_call5("SendSingleKey",hnd%,37,0,0,0) end_select display set_focus 0 return
redim: width 0,width(0) - width_client(0) + 800 height 0,height(0) - height_client(0) + 600 return
Bonne programmation à tous ! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid Jeu 7 Oct 2021 - 16:16 | |
| Alors là, carrément superbe !!! Comme dit Froggy One, que de vitamines ! Bravo ! | |
| | | Contenu sponsorisé
| Sujet: Re: Déplacer la coloration bleue des cellules d'un grid | |
| |
| | | | Déplacer la coloration bleue des cellules d'un grid | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |