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 |
|
|
| Un clic inactif | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: Un clic inactif Jeu 15 Mai 2014 - 23:35 | |
| Bonsoir, Normalement cela devrait-être dans les bugs. Depuis hier soir je suis confronté à un problème. Pour mon programme de site, j'ai voulu ajouté un sélecteur d'images qui se trouve dans le dossier img qui est créé pour chaque sujet. Voila j'ai un grid qui a toutes les infos concernant les images liées au sujet. Mais comme on peu rajouter des images (et je le fait quotidiennement pour le même programme mais personnel sur le disque concernant mon jardin), il m'a paru plus agréable de rajouter une liste qui reçoit toutes les images, y compris celles qui ne sont pas encore dans le grid, pour sur un clic dans la liste, voir ce que cela représente. Plus simplement, je clique sur un bouton, et un liste se rempli de toutes les images du dossier. Je clique sur un item du liste, et on voit l'image. Et bien voila: Le clic n'est pas pris en compte. Il ne se passe rien. Dès le départ j'ai évité les timers et on_change pour que rien de mon programme ne soit détourné. J'ai en cours 240 objets, et il s'en rajoute parfois. Ayant déjà eu des problèmes, j'ai pu remarqué que parfois, il fallait redémarrer l'ordinateur, et le problème disparaissait. Ce matin j'ai donc redémarré l'ordinateur, et je ne me suis pas pressé. J'ai regardé si j'avais fait une erreur de conception. Presque toutes les sub et sous-programme ont une ligne: sub$ = "sub nom de la sub ou du sous-programme() ":if control% = 1 then caption 0,sub$:wait 1000 Donc lorsque j'ai un problème, je mets control% à 1, et j'ai le temps de voir le cheminement du programme. Lorsque je clique, et bien, rien ne se passe. Il n'est pas reconnu. J'ai donc fait une copie des objets sub et sous-programme concernés. Seul le parent peut-être différent, et c'est le cas pour un bouton, mais le problème ne se pose pas là, vu que celui-ci fonctionne. Donc j'ai recopié cette partie, et le clic sur un item du liste est reconnu et fonctionne. Je vais finir par penser que je suis maudit. J'ai un programme qui fonctionne, et c'est rien que des trucs invraisemblable qui se passe. Les problèmes d'anti-virus, Un problème qui est apparu, et c'est avec "comment ça marche" que je le résouds(du moins je l'ai résolu seul, avec php je n'y arrive pas). Maintenant ce list qui ne se laisse pas cliqué, alors que l'item passe au bleu. Je mets la partie du code recopié et celui-ci fonctionne. Ce code n'est pas fini, vu que dans mon programme il n'est pas actif au clic. - Code:
-
label clic_list485 dim sub$,control%,path$,rubr$,suj$ ' ---------------------------- path$ ="h:\site_cosmos70\Contributions\" :' ces 2 variables peut-être pour testé être = "" suj$="palette-circulaire-couleur\" ' pour faire un teste mettre carémnent le path$ sur un dossier image, et suj$=""
' *********************************************** ' ..............controle d'une image..............
picture 480:color 480,0,0,0:width 480,2000:height 480,2000:hide 480 :' picture caché recevant une image pour dimensionner
' ................................................ ' à droite sous container input 173 container 484 : left 484,760: top 484,271:width 484,682:height 484,300 :caption 484,"contenu du dossier image" : hint 484,484 list 485:parent 485,484: top 485,20 : left 485,20:width 485,400 : height 485,230:font_size 485,10: font_bold 485 : hint 485,"list 485"
on_click 485,clic_list485 : message "on_click 485,clic_list485 LU!"
' partie gauche container 486 : width 486,760 : height 486,800 : hint 486,486 picture 481:parent 481,486:width 480,750 : height 481,height(484)-10 : left 481,5 : top 481,5
' ***********************************************
button 482: parent 482,486: left 482,200 : caption 482,"Voir les images du sujet":width 482,205 : top 482,170
label visionner_image : on_click 482,visionner_image control%=1
end ' ==============================================================================
visionner_image: sub$ = "visionner_image: ":if control% = 1 then caption 0,sub$:wait 1000 show 486:show 484 clear 485 : faire_liste_image() : return clic_list485: sub$ = "clic_list485:":if control% = 1 then caption 0,sub$:wait 1000 stop list485_image() return
sub list485_image() sub$ = "sub list485_image() ":if control% = 1 then caption 0,sub$:wait 2000 message "ici sub" dim_local f$ , lx%,ly% , lig% , a% ' il faudra retirer png, gif. if item_index(485) > 0 and count(485) > 0 lig% = item_index(485) : color 480,0,0,0 file_load 480,path$ + rubr$ + suj$ + "data\img\" + item_index$(485) :' 1 picture pour le calcul file_load 481,path$ + rubr$ + suj$ + "data\img\" + item_index$(485) for a% = 2000 to 50 step -200 if color_pixel_red(480,a%,20) > 0 then exit_for next a% message a% :' arréter pour l'instant vu que le clic sur 485, ne branche pas end_if end_sub
sub faire_liste_image() sub$ = "sub faire_liste_image() ":if control% = 1 then caption 0,sub$:wait 1000 dim_local dir$,a$ ,ext$ dir$ = path$ + rubr$ + suj$ + "data\img\" dir_change dir$ a$ = file_find_first$ : ext$ = file_extract_extension$(a$)
while a$ <> "_" if instr(" .bmp .jpg .jpeg .gif .png "," " + ext$ + " ") > 0 item_add 485,a$ end_if a$ = file_find_next$ : ext$ = file_extract_extension$(a$) end_while file_find_close on_click 485,clic_list485 :' remis ici le on_click qui est déjà validé. end_sub Bien me voila seul, sans savoir ce que je vais pouvoir faire. Peut-être ne pas mettre cette partie. Dommage! Je ne sais pas comment procéder pour avoir ce clic. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 0:11 | |
| Très difficile à tester, ton bout de code. Les objets container etc se superposent chez moi, et je ne vois pas la liste des fichiers. J'ai désactivé certaines lignes déclarant des objets, et voici que la liste des images apparaît. Et si je clique sur une de ces lignes, j'obtiens bien la réaction au clic avec un passage dans clic_list485. Voici le code: - Code:
-
label clic_list485 dim sub$,control%,path$,rubr$,suj$
' ---------------------------- path$ ="" : ' klaus ces 2 variables peut-être pour testé être = "" suj$="" : ' klaus ' pour faire un teste mettre carémnent le path$ sur un dossier image, et suj$=""
' *********************************************** ' ..............controle d'une image..............
picture 480:color 480,0,0,0:width 480,2000:height 480,2000:hide 480 :' picture caché recevant une image pour dimensionner
' ................................................ ' à droite sous container input 173 ' klaus container 484 : left 484,760: top 484,271:width 484,682:height 484,300 :caption 484,"contenu du dossier image" : hint 484,484 container 484 : left 484,10: top 484,271:width 484,682:height 484,300 :caption 484,"contenu du dossier image" : hint 484,484 list 485:parent 485,484: top 485,20 : left 485,20:width 485,400 : height 485,230:font_size 485,10: font_bold 485 : hint 485,"list 485"
on_click 485,clic_list485 : message "on_click 485,clic_list485 LU!"
' partie gauche ' klaus container 486 : width 486,760 : height 486,800 : hint 486,486 ' klaus picture 481:parent 481,486:width 480,750 : height 481,height(484)-10 : left 481,5 : top 481,5
' ***********************************************
' klaus button 482: parent 482,486: left 482,200 : caption 482,"Voir les images du sujet":width 482,205 : top 482,170 button 482: left 482,200 : caption 482,"Voir les images du sujet":width 482,205 : top 482,170
label visionner_image : on_click 482,visionner_image control%=1
end ' ==============================================================================
visionner_image: sub$ = "visionner_image: ":if control% = 1 then caption 0,sub$:wait 1000 ' klaus show 486:show 484 clear 485 : faire_liste_image() : return
clic_list485: sub$ = "clic_list485:":if control% = 1 then caption 0,sub$:wait 1000 stop list485_image() return
sub list485_image() sub$ = "sub list485_image() ":if control% = 1 then caption 0,sub$:wait 2000 message "ici sub" dim_local f$ , lx%,ly% , lig% , a% ' il faudra retirer png, gif. if item_index(485) > 0 and count(485) > 0 lig% = item_index(485) : color 480,0,0,0 file_load 480,item_index$(485) :' 1 picture pour le calcul file_load 481,item_index$(485) for a% = 2000 to 50 step -200 if color_pixel_red(480,a%,20) > 0 then exit_for next a% message a% :' arréter pour l'instant vu que le clic sur 485, ne branche pas end_if end_sub
sub faire_liste_image() sub$ = "sub faire_liste_image() ":if control% = 1 then caption 0,sub$:wait 1000 dim_local dir$,a$ ,ext$ dir$ = "" : ' path$ + rubr$ + suj$ + "data\img\" ' dir_change dir$ a$ = file_find_first$ : ext$ = file_extract_extension$(a$)
while a$ <> "_" if instr(" .bmp .jpg .jpeg .gif .png "," " + ext$ + " ") > 0 item_add 485,a$ end_if a$ = file_find_next$ : ext$ = file_extract_extension$(a$) end_while file_find_close on_click 485,clic_list485 :' remis ici le on_click qui est déjà validé. end_sub Donc, ton problème est dans les quelques lignes que j'ai désactivées. | |
| | | Invité Invité
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 0:45 | |
| Merci d'avoir voulu tester Klaus. Pour les container j'ai pas encore traité les visibilités. Je suis bloqué ailleurs.
Mais ce programme fonctionne ici. Le clic sur un item du list réagit. On le voit en regardant le caption 0. En cliquant sur le bouton (il faudrait ajouter full_space 0), on a le caption : sub faire_liste_image() Ensuite en cliquant sur un item, (lorsqu'on a des images dans le dossier), on voit clic_list485: Et bien dans mon programme d'où j'ai extrais les codes, le clic n'agit pas, et je ne vois pas ce caption. Pourtant l'item est en bleu.
Tu ne peux pas tester vraiment. Il faudrait que je mette mon programme à jour avec ces commandes sur mon site. Pour l'instant il n'est sauvegardé que sur un autre nom, pour ne pas perdre ce qui marche. Mais je ne vais pas demander à quelqu'un de me le déboguer. Mon programme je le connais, et rentrer dedans ne serait pas simple pour des yeux extérieurs.
Sachant ce que j'ai fait, c'est pas mon programme qui est en cause. Le on_click est lu. Il suffit de mettre un message derrière pour le voir. Comme cette partie est neuve, je peux te dire qu'il n'y a pas de OFF_CLICK pour le list. Pourtant dans mon programme il ne réagit pas, alors qu'ici (c'est le même) il réagit.
J'ai pensé qu'il y avait une limite dans le nombre d'objet cliquable à la fois, mais l'ajout d'un list dans mon programme, le clic se fait dans ce nouveau list. Le list 485 est actif, visible, non bloqué par un timer ou autre, et non détourné par autre chose. Et je ne vois pas comment il peut-être dans une queue de file. Si je reclique sur le bouton, le remplissage du list se refait, donc il n'y a pas de blocage.
Pour citer Fernand Raynaud: "Y'a comme un défaut" ! Franchement je ne vois pas ce que tu peux faire. A moins qu'il y a quelque chose dans kgf, vu que je l'utilise pour visionner du html. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 0:50 | |
| Peut_être une confusion de labels dans les commandes ON_CLICK... C'est vite arrivé étant donné que du utilises des numéros semblables, pour les labels. En tout cas, c'est une piste qui vaut d'être explorée. | |
| | | Invité Invité
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 1:00 | |
| Non ce n'est pas le cas, mais je viens de résoudre le problème. J'ai mis un deuxième liste en doublon pour recevoir les fichiers, que je recopie dans le list 485. J'ai ensuite testé dans tout le programme les "inactive", et il n'y en avait pas pour ce list. Et j'ai ajouté après le remplissage du list ceci: active 485:on_click 485,clic_list489. Pourquoi active 485 est nécessaire? je ne le sais pas. Merci pour ta participation. Maintenant |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 1:06 | |
| euh... - Citation :
- active 485:on_click 485,clic_list489.
si 485 était inactif, il ne pourrait pas être cliqué... | |
| | | Invité Invité
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 1:21 | |
| Sauf que: Tel-qu’il est là, il est cliquable. Ajoute inactive 485, tu verras la différence. Bon problème résolu, bonne nuit! et merci. |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 2:43 | |
| Salut tout le monde J’ai voulu participer, alors j’ai un peu bricolé le code ; mais une affaire urgente m’a appelé et je n’avais pas posté mon truc. Je retourne et je vois que cosmos 70 a résolu son problème : c’est tant mieux ! - Mon truc:
- Code:
-
label clic_list485 dim sub$,control%,path$,rubr$,suj$ path$ ="C:\Users\acer\Pictures\Fond_Ecran" suj$="" height 0,700 : width 0,800
picture 480:color 480,0,0,0:width 480,2000:height 480,2000: hide 480 container 484 : left 484,10: top 484,350:width 484,682:height 484,300 :caption 484,"contenu du dossier image" : hint 484,484 list 485:parent 485,484: top 485,20 : left 485,20:width 485,400 : height 485,230:font_size 485,10: font_bold 485 : hint 485,"list 485"
on_click 485,clic_list485 picture 481 width 481,750 : height 481,height(484)-10 : left 481,5 : top 481,5 button 482: left 482,200 : caption 482,"Voir les images du sujet":width 482,205 : top 482,300 label visionner_image : on_click 482,visionner_image control%=1
end ' ==============================================================================
visionner_image: sub$ = "visionner_image: ":if control% = 1 then caption 0,sub$ clear 485 : faire_liste_image() : return rem ============================================================================ clic_list485: sub$ = "clic_list485:":if control% = 1 then caption 0,sub$ list485_image() return rem ============================================================================ sub list485_image() sub$ = "sub list485_image() ":if control% = 1 then caption 0,sub$
dim_local f$ , lx%,ly% , lig% , a% ' il faudra retirer png, gif. if item_index(485) > 0 and count(485) > 0 lig% = item_index(485) : color 480,0,0,0 file_load 480,item_index$(485) file_load 481,item_index$(485) for a% = 2000 to 50 step -200 if color_pixel_red(480,a%,20) > 0 then exit_for next a% end_if end_sub rem ============================================================================ sub faire_liste_image() sub$ = "sub faire_liste_image() ":if control% = 1 then caption 0,sub$:wait 1000 dim_local dir$,a$ ,ext$ dir$ = path$ :' + rubr$ + suj$ + "data\img\" dir_change dir$ a$ = file_find_first$ : ext$ = file_extract_extension$(a$)
while a$ <> "_" if instr(" .bmp .jpg .jpeg .gif .png "," " + ext$ + " ") > 0 item_add 485,a$ end_if a$ = file_find_next$ : ext$ = file_extract_extension$(a$) end_while file_find_close on_click 485,clic_list485 end_sub rem ============================================================================
| |
| | | Invité Invité
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 7:44 | |
| Bien Papydall. Jolie ville.
Le problème est que mon programme n'est pas en cause. Le placement des objets n'était pas encore définie, et pour présenter celui-ci j'ai changé quelques parent pour ne pas mettre du code inutile ici.
Mon code n'est tellement pas en cause que maintenant en mettant active en commentaire, voila que le list devient cliquable. C'était bien un blocage non pas de mon programme, mais de l'ordi.
Je ne dis pas que c'est Panoramic qui est en cause, car dernièrement j'ai repris mon programme AutoIt pour lancer Panoramic en apportant des améliorations. J'avais ces derniers temps un blocage d'AutoIt à un certain moment. Et bien d'un seul coup, ce blocage s'en envolé. Depuis 2009 que je programme en Panoramic, j'ai bien eu 5, 6 fois un problème de déroulent d'un programme qui théoriquement fonctionnait, mais rien. Et le fait de mettre un stop à tel endroit, par miracle le programme continuait ensuite, même une fois le stop retiré. Donc on peut très bien avoir un code correct, et quelque chose qui le dérange. Qui dit que ce n'est pas Windows qui est en cause? Il fait tellement de chose à la fois, qu'un chemin est peut-être perturbé. D'ailleurs plusieurs fois en redémarrant Windows, des problèmes disparaissaient ensuite. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 9:54 | |
| Je pense que tu fais erreur, Cosmos70. Aucun "blocage" de l'ordinateur ne peut induire une inactivation d'un objet particulier. Tous les objets Panoramic sont créés "actifs", il n'y a pas de limite du nombre d'objets actifs simultanément, ni de nombre d'objets tout court, autre que les limites techniques de la machine. Et celles-ci sont quasiment impossibles à atteindre. Non? Si ta liste est inactive, c'est qu'elle a été inactivée explicitement, par ine commande INACTIVE dont le numéro d'objet a été 485. Ceci peut arriver lorsque le numéro d'objet est dans une variable ou le résultat d'une expression, ou lorsqu"une telle commande a été oubliée quelque part dans le source, après une modification. Je pense que tu as intérêt à chercher l'endroit qui provoque cette inactivation, car sinon, tu risques de rencontrer d'autres phénomènes "inexplicables" de ce genre. Crée une procédure comme ceci: - Code:
-
sub test_485(txt$) if inactive(485) then message "Oups ! "+txt$ end_sub Et tu places des appels à cette procédure un peu partout, dans le cours de ton programme. Tu saura isoler ainsi, progressivement, la partie de ton code qui provoque cela. Une fois le problème corrigé, au lieu d'être obligé d'enlever tous ces ajouts, il suffit de mettre la ligne "if inactive(..." en commentaire, et le tour est joué. | |
| | | Invité Invité
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 10:13 | |
| L)à Klaus, je ne peux plus être d'accord. J'abandonne.
SI JE TE DIS QU'IL N'Y A PAS INACTIF SUR LE LIST EN QUESTION, TU PEUX ME CROIRE, IL N'Y EN A PAS.
J'enlève le reste. Ça ne changera rien au résultat et ça me fait mal aux yeux.
Dernière édition par cosmos70 le Ven 16 Mai 2014 - 11:37, édité 1 fois |
| | | Invité Invité
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 10:24 | |
| Juste pour te dire que je ne t'en veux pas. Avec le mal que tu te donnes ici, cela serait difficile qu'il en soit ainsi. |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 13:02 | |
| Bonjour Cosmos70 Je ne doute pas un seul instant de ce que tu dis quand tu exposes un problème. Tu dis qu’un ACTIVE 485 : ON_CLICK 485, clic_list489 a résolu le problème mais tu ne sais pas pourquoi est-il nécessaire bien qu’il n’y ait aucune instruction pour le désactiver. Comme ça me dérange d’accepter l’inexplicable, j’ai essayé de comprendre pour satisfaire ma curiosité ! Dans ton 1er post, tu as écrit - cosmos70 a écrit:
- Et bien voila: Le clic n'est pas pris en compte. Il ne se passe rien.
Je pense que le clic est bien pris en compte et qu'il s’est passé des choses ; seulement on ne les voit pas. Dans le code que tu as posté, j’ai simplement ajouté, en début de programme - Code:
-
Full_space 0
Et là, tout fonctionne à merveille ! (au moins chez moi). Peux-tu confirmer ? | |
| | | Invité Invité
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 13:25 | |
| Merci Papydall. Mais le programme limité posté fonctionne, et on ne voit pas forcément le résultat, car j'ai pas pensé à revoir le dimensionnement. Mais vois-tu, le programme maintenant ne fonctionne plus.Toutes les procédures ont une ligne qui montre le cheminement du programme qui est: sub$ = "visionner_image: ":if control% = 1 then caption 0,sub$:wait 1000 Dans "visionner_image" est le nom de la procédure. Lorsque je clique sur un item du list, celui-ci est validé par la couleur de l'item. Donc le list est obligatoirement actif, sinon le list resterait blanc. Dans la procédure: "faire_liste_image()" qui s'affiche dans le caption 0, j'ai mis à la fin: - Code:
-
active 485: on_click 485,clic_list485 : active 485 end_sub Lorsque j'ai fini de cliquer sur cet item qui est actif, vu qu'il prend la couleur, et si je clique sur un autre item, c'est celui-ci qui se colorise à la place de l'autre (là si le list 485 n'est pas actif, il faut m'expliquer) Attention je parle de mon vrai programme et non de la partie simplifié qui fonctionne . L'ordinateur n'a plus rien à faire que d'aller à "clic_list485" dans lequel j'ai la première ligne qui est: - Code:
-
sub$ = "sub list485_image() ":if control% = 1 then caption 0,sub$:wait 1000 Et bien, plus rien, le branchement ne se fait pas. Certain pense que je divague. Moi j'ai la réalité en face de moi. Je suis obligé de partir. |
| | | Invité Invité
| Sujet: Re: Un clic inactif Ven 16 Mai 2014 - 15:13 | |
| J'ai peut-être trouvé une parade. Enfin pour l'instant cela marche. J'espère que c'est définitif.
J'ai rajouté: on_key_up 485,le même lien.
Cela montre que ce n'est pas une question de list actif, mais peut-être un bug sur on_click. |
| | | Contenu sponsorisé
| Sujet: Re: Un clic inactif | |
| |
| | | | Un clic inactif | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |