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 |
|
|
| Y'a-t-il des bugs avec les dll ? | |
| | Auteur | Message |
---|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Y'a-t-il des bugs avec les dll ? Dim 3 Oct 2021 - 16:53 | |
| Comme je l'ai précisé, j'ai des difficultés à appliquer le conseil de Marc avec la dll_32 dans Poidsoramic. Comme, dans ce programme, il faut que ce soit l'ordinateur qui décide de changer la couleur des cellules du grid, j'ai intégré l'astuce de Marc et Klaus dans une boucle sub-end_sub. Le problème, c'est que ça a l'air de provoquer des dysfonctionnement étranges sur d'autres aspects. Exemple : - Code:
-
rem ' Essai mini-grid avec déplacement de la case bleue et détection x et y dim V1M% label clic dll_on "user32" grid 100 width 100,350 height 100,150 grid_write 100,2,1,"Y" grid_write 100,1,2,"X" for V1M% = 3 to 5 grid_write 100,V1M%,1,V1M% grid_write 100,1,V1M%,V1M% next V1M% on_click 100,clic button 200 left 200,400 caption 200,"Bas" on_click 200,clic button 210 left 210,500 caption 210,"Droite" on_click 210,clic
alpha 300 : ' X left 300,400 top 300,50 caption 300,2 alpha 310 : ' Y left 310,400 top 310,100 caption 310,2
alpha 305 left 305,370 top 305,50 caption 305,"X =" alpha 315 left 315,370 top 315,100 caption 315,"Y =" end : ' Début des routines ====================================================
sub bleu(qd%) : rem Déplacement de la case bleuie de la grille ================ dim_local v1bl% rem qd% = Dans Quelle Direction bouger le bleu set_focus 100 select qd% case 2 :' HAUT v1bl% = dll_call4("keybd_event",38,0,0,0) case 3 :' DROITE v1bl% = dll_call4("keybd_event",39,0,0,0) case 4 :' BAS v1bl% = dll_call4("keybd_event",40,0,0,0) case 5 :' GAUCHE v1bl% = dll_call4("keybd_event",37,0,0,0) case 6 :' HAUT GAUCHE v1bl% = dll_call4("keybd_event",33,0,0,0) : ' Top v1bl% = dll_call4("keybd_event",36,0,0,0) : ' Début end_select display end_sub
clic: : rem Gestion de tous les on-click ====================================== select number_click case 100 set_focus 0 loc_xy(3) case 200 bleu(4) : ' Bas loc_xy(1) case 210 bleu(3) : ' Droite loc_xy(2) end_select return
sub loc_xy(qc%) : rem Affichage de la localisation du focus =================== dim_local v1lo% rem qc% = Quelle Coordonnée doit changer : 1=y : 2=x : 3=xy select qc% case 1 v1lo%=val(caption$(310)) v1lo%=v1lo%+1 caption 310,v1lo% case 2 v1lo%=val(caption$(300)) v1lo%=v1lo%+1 caption 300,v1lo% case 3 v1lo%=grid_x_to_column(100,mouse_x_position(100)) caption 300,v1lo% v1lo%=grid_y_to_row(100,mouse_y_position(100)) caption 310,v1lo% end_select end_sub Alors, quand on clique sur une cellule d'un grid, les coordonnées affichées sont correctes. Par contre, si on appuie sur les boutons Bas et Droite, les coordonnées affichées deviennent aberrantes, et en plus, elles différent d'une fois sur l'autre, quand on arrête et qu'on relance le RUN de l'éditeur. Alors, ou ma grande sieste trimestrielle m'a complètement ramolli ce qui me sert occasionnellement de cervelle, ou alors, il y a comme un bug dans le fonctionnement de l'éditeur panoramic avec l'utilisation de cette dll...??? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Y'a-t-il des bugs avec les dll ? Dim 3 Oct 2021 - 18:34 | |
| Salut JJN4 ! Aie ! L’évènement ON_CLICK est déclenché par l’appui sur un des boutons puis par le clic virtuel sur le GRID 100. Donc double déclenchement ! Si tu cliques sur un bouton, il faut inhiber le ON_CLICK 100 avant que le programme envoie son clic virtuel sur une case du GRID 100, puis le rétablir. EDIT : Pour effectuer des essais, j'ai modifié ton source : - Code:
-
rem ' Essai mini-grid avec déplacement de la case bleue et détection x et y dim V1M%, ligne%,colonne%, res% label clicBouton, clicGrid dll_on "user32"
ligne% = 2 colonne% = 2 grid 100 width 100,350 height 100,150 grid_write 100,2,1,"Y" grid_write 100,1,2,"X" for V1M% = 3 to 5 grid_write 100,V1M%,1,V1M% grid_write 100,1,V1M%,V1M% next V1M% on_click 100,clicGrid button 200 left 200,400 caption 200,"Bas" on_click 200,clicBouton button 210 left 210,500 caption 210,"Droite" on_click 210,clicBouton
alpha 300 : ' X left 300,400 top 300,50 caption 300,str$(colonne%) alpha 310 : ' Y left 310,400 top 310,100 caption 310,str$(ligne%)
alpha 305 left 305,370 top 305,50 caption 305,"X =" alpha 315 left 315,370 top 315,100 caption 315,"Y =" end : ' Début des routines ====================================================
clicBouton: off_click 100 set_focus 100 select number_click case 200 :' bouton BAS res% = dll_call4("keybd_event",40,0,0,0) ligne% = ligne% +1 case 210 :' bouton DROITE res% = dll_call4("keybd_event",39,0,0,0) colonne% = colonne% +1 end_select display set_focus 0 on_click 100,clicGrid caption 300,colonne% caption 310,ligne% return
clicGrid: colonne% = grid_x_to_column(100,mouse_x_position(100)) caption 300,colonne% ligne% = grid_y_to_row(100,mouse_y_position(100)) caption 310,ligne% set_focus 0 return
| |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Y'a-t-il des bugs avec les dll ? Dim 3 Oct 2021 - 19:06 | |
| Ah oui, super !!! J'avais pensé à un risque de ce genre et je l'avais fait autour de bleu(qd%), ce qui n'avait rien donné, mais je n'avais pas pensé à le faire autour de clic: Merci, maintenant, je sens que ça va marcher...! | |
| | | Contenu sponsorisé
| Sujet: Re: Y'a-t-il des bugs avec les dll ? | |
| |
| | | | Y'a-t-il des bugs avec les dll ? | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |