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 |
|
|
| V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 16:15 | |
| Nouvelle version: KGF.dll V2.63 du 02/12/2013
Nouveauté: correction d'un bug dans la fonction AddButtonToToolbar, concernant la prise en compte correcte du paramètre after%, quelque soit l'orientation de la Toolbar
Modules modifiés; KGF.dll
Les sources sont à jour.
| |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 17:12 | |
| Un grand merci à toi Klaus! Maintenant, ça fonctionne correctement. Et c'est plus logique d'utiliser -1 pour after% de manière à ranger les boutons l'un après l'autre, puisque after signifie après en anglais! Cependant, je viens de détecter un autre problème que je n'avais pas remarqué avant: quand la toolbar vient en bas du form ou à droite du form, donc side%=2 ou side%=3 elle n'est pas tout à fait collée à la bordure du form. Voici 2 images qui montre l'anomalie: Désolé pour le dérangement. A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 17:29 | |
| Ca doit venir de la version de Windows et de l'épaisseur de la bordure. Voici ce que ça donne chez moi, sous XP Pro SP3: et Tu vous que chez moi, le bord extérieur de la barre est plutôt "mangé" par le bord de la form. As-tu un moyen de mesurer le nombre de pixels d'écart chez toi ? Sous quelle version es-tu ? | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 17:57 | |
| Je suis sous MS Windows 7 Home Premium 64-bit SP1 , j'utilise des icones 32x32, et je pense que l'écart à droite est de 8 ou 9 pixels et en bas de 6 ou 7 pixels. Ma résolution écran est 1600x900.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 18:27 | |
| Pourrais-tu faire un test ? Lorsque ta fenêtre a la taille définitive, fais stp ceci: - Code:
-
dim res%,largeur%,hauteur%,gauche%,haut% dll_on "KGF.dll" <===== adapter le chemin res% = DLL_call5("GetFormMetrics",handle(0),adr(gauche%),adr(haut%),adr(largeur%),adr(hauteur%)) memo 1234 item_add 1234,"gauche="+str$(gauche%) item_add 1234,"haut="+str$(haut%) item_add 1234,"largeur= "+str$(largeur%) item_add 1234,"hauteur="+str$(hauteur%) item_add 1234,"width="+str$(width(0)) item_add 1234,"height="+str$(height(0))
Puis, poste stp le contenu du mémo - ainsi je pourrai adapter en fonction du système ! | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 18:40 | |
| voici le résultat du mémo: gauche=0 haut=0 largeur= 800 hauteur=860 width=800 height=860
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 18:48 | |
| Merci. C'est ce que je redoutais: dans ma mesure, les bords sont inclus, et non exclus comme je pensais. Je vais corriger cela. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 19:05 | |
| Un autre essai, si tu veux bien !
Prends sur mon WebDav le fichier KGF_debug.dll. C'est exactement KGF.dll, sauf la fonction GetFormMetrics qui va affichier 3 messages. Exécute le même morceau de code que toute à l'heure, avec cette DLL, et note les 4 messages. ils me donneront les mesures exactes intérieur/extérieur de la form et donc des bordures.
| |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| | | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 19:29 | |
| euh... as-tu changé le nom en LOAD_DLL "KGF_debug.dll" ? | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 19:35 | |
| j'ai changé ma ligne 6: dll_on "c:\PANORAMIC\KGF.dll" en dll_on "c:\PANORAMIC\KGF_debug.dll" après avoir mis le fichier KGF_debug.dll dans le répertoire C:\PANORAMIC. Ce n'est pas comme cela qu'il faut faire? J'avoue que je suis un peu perdu là. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 19:51 | |
| Oui, c'est bien comme ça qu'il faut faire. Mais quelque fois, il faut réenregistrer le source Panoramic dans l'éditeur avant de le lancer - l'éditeur se mélange souvent les pinceaux avec le dossier source, le dossier par défaut, etc. Chez moi, ça provoque ce genre d'erreur, et c'est résolu après un nouvel enregistrement.
EDIT
On m'appelle à table, et je verrai la suite un peu plus tard... | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 20:04 | |
| Maintenant, j'ai droit à ce message d'erreur pour cette ligne: res% = DLL_call5("GetFormMetrics",handle(0),adr(gauche%),adr(haut%),adr(largeur%),adr(hauteur%)) Not correct arithmetic expression: No DLL loaded line 130 Bon, moi aussi je vais aller à table, Bon appétit! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 20:51 | |
| Le message est clair: pour une raison ou une autre, DLL_ON n'a pas trouvé la DLL. Comme il s'agit juste d'un test, place-la dans le dossier où est ton source, enlève la référence au dossier dans DLL_ON et lance comme ça. En tout cas, en cas de doute, c'est comme ça que je teste. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Lun 2 Déc 2013 - 21:30 | |
| Bon, après bien des déboires, j'ai réussi à avoir les messages: left=0 0 top=0 0 right=800 784 bottom=860 822
Plus rien ne fonctionnait pendant un moment. J'ai du relancer l'ordi et ça ne marchait pas non plus après cela, jusqu'à ce que je m' aperçoive que tout à l'heure, j'avais introduit un dll_off dans mon programme juste avant la fonction GetFormMetrics.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 0:31 | |
| Bon, j'ai eu le temps de voir ça. Sans avoir un W7 sous la main, j'ai apporté les corrections que j'ai déduites de ces chiffres. Peux-tu recharger KGF.dll à partir de mon WebDav (pas KGF_demo.dll) et réessayer ? Je serais curieux de connaître le résultat. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 7:13 | |
| Bonjour Klaus, Bon, j'ai enfin compris ce qui se passe et je suis désolé de t'avoir fait perdre ton temps. Voici ce que j'avais dans mon programme: - Code:
-
res% = dll_call4("ModifyToolbar",1,255,255,255) : ' blanc res% = dll_call4("ModifyToolbar",7,32,0,0) : ' icones 32 x 32 width 0, width(0) + 200 height 0,screen_y-40 res% = dll_call4("ModifyToolbar",2,0,0,0) : ' ajuster la toolbar à la largeur du form ' si side%=0 (en haut) ou side%=2 (en bas) ' ajuster la toolbar à la hauteur du form ' si side%=1 (à gauche) ou side%=3 (à droite)
Mais si je déplace dll_call4("ModifyToolbar",2,0,0,0) avant dll_call4("ModifyToolbar",7,32,0,0), c'est à dire comme cela: - Code:
-
res% = dll_call4("ModifyToolbar",1,255,255,255) : ' blanc width 0, width(0) + 200 height 0,screen_y-40 res% = dll_call4("ModifyToolbar",2,0,0,0) : ' ajuster la toolbar à la largeur du form ' si side%=0 (en haut) ou side%=2 (en bas) ' ajuster la toolbar à la hauteur du form ' si side%=1 (à gauche) ou side%=3 (à droite) res% = dll_call4("ModifyToolbar",7,32,0,0) : ' icones 32 x 32
les toolbars avec side%=2 ou 3, se collent bien le long de la bordure du form. Oui, mais un peu trop maintenant que tu as modifié à nouveau ta dll, et je suis vraiment confus car j'avais bien lu dans ta doc que "ModifyToolbar",7,..." doit être effectué juste avant la création des boutons. Voici les images de ce qui se passe maintenant: Là sur ces images on voit que les icones rentrent presque sous la bordure du form. Normal puisque tu as modifié KGF en fonction des résultats obtenus par KGF_debug. Mille pardons de t'avoir fait perdre ton temps Klaus! A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: 6 Mar 3 Déc 2013 - 8:59 | |
| Oh, tu ne m'as pas fait perdre mon temps ! tu m'as incité à créer un mécanisme à l'intérieur de la DLL pour conditionner mon code en fonction du système d'exploitation, et c'est utile pour moi aussi. J'ai donc "corrigé" la DLL à nouveau. Si tu pouvais recharger KGF.dll à partir de mon WebDav et réessayer... Je pense que ça devrait aller. Personnellement, je teste avec cette version modifiée de ton programme (utilisant les icônes internes): - Code:
-
' bignono_1.bas
label click_toolbar
dim res%, icon$, after%, hint$
dll_on "KGF.dll"
edit 1 : hide 1
on_change 1,click_toolbar
' ============================================================== ' res% = dll_call2("CreateToolbar",handle(cible%),handle(edit%),side%) ' ============================================================== res% = dll_call3("CreateToolbar",handle(0),handle(1),3)
' ============================================================== ' res% = dll_call4("ModifyToolbar",action%,p1%,p2%,p3%) ' ============================================================== res% = dll_call4("ModifyToolbar",1,255,255,255) : ' blanc res% = dll_call4("ModifyToolbar",7,32,0,0) : ' icones 32 x 32 width 0, width(0) + 200 height 0,screen_y-40 res% = dll_call4("ModifyToolbar",2,0,0,0) : ' ajuster la toolbar à la largeur du form ' si side%=0 (en haut) ou side%=2 (en bas) ' ajuster la toolbar à la hauteur du form ' si side%=1 (à gauche) ou side%=3 (à droite)
' ============================================================== ' res% = dll_call4("AddButtonToToolbar",id%,after%,adr(hint$),adr(icon$)) ' ============================================================== hint$ = "afficher la photo" icon$ = "KGF_1" res% = dll_call4("AddButtonToToolbar",1,0,adr(hint$),adr(icon$)) hint$ = "prendre une photo" icon$ = "KGF_2" after% = 0-1 res% = dll_call4("AddButtonToToolbar",2,after%,adr(hint$),adr(icon$)) hint$ = "aller à gauche" icon$ = "KGF_3" res% = dll_call4("AddButtonToToolbar",3,after%,adr(hint$),adr(icon$)) hint$ = "avancer" icon$ = "KGF_4" res% = dll_call4("AddButtonToToolbar",4,after%,adr(hint$),adr(icon$)) hint$ = "aller à droite" icon$ = "KGF_5" res% = dll_call4("AddButtonToToolbar",5,after%,adr(hint$),adr(icon$)) hint$ = "reculer" icon$ = "KGF_6" res% = dll_call4("AddButtonToToolbar",6,after%,adr(hint$),adr(icon$)) hint$ = "filmer" icon$ = "KGF_7" res% = dll_call4("AddButtonToToolbar",7,after%,adr(hint$),adr(icon$)) hint$ = "grossir" icon$ = "KGF_8" res% = dll_call4("AddButtonToToolbar",8,after%,adr(hint$),adr(icon$)) hint$ = "réduire" icon$ = "KGF_9" res% = dll_call4("AddButtonToToolbar",9,after%,adr(hint$),adr(icon$)) hint$ = "police" icon$ = "KGF_10" res% = dll_call4("AddButtonToToolbar",10,after%,adr(hint$),adr(icon$)) hint$ = "style" icon$ = "KGF_11" res% = dll_call4("AddButtonToToolbar",11,after%,adr(hint$),adr(icon$)) hint$ = "aligner à gauche" icon$ = "KGF_12" res% = dll_call4("AddButtonToToolbar",12,after%,adr(hint$),adr(icon$)) hint$ = "centrer" icon$ = "KGF_13" res% = dll_call4("AddButtonToToolbar",13,after%,adr(hint$),adr(icon$)) hint$ = "aligner à droite" icon$ = "KGF_14" res% = dll_call4("AddButtonToToolbar",14,after%,adr(hint$),adr(icon$)) hint$ = "Majuscules/Minuscules" icon$ = "KGF_15" res% = dll_call4("AddButtonToToolbar",15,after%,adr(hint$),adr(icon$)) hint$ = "interdire" icon$ = "KGF_16" res% = dll_call4("AddButtonToToolbar",16,after%,adr(hint$),adr(icon$)) hint$ = "autoriser" icon$ = "KGF_17" res% = dll_call4("AddButtonToToolbar",17,after%,adr(hint$),adr(icon$)) hint$ = "ajouter" icon$ = "KGF_300" after% = 3 res% = dll_call4("AddButtonToToolbar",18,after%,adr(hint$),adr(icon$)) END
click_toolbar: message "Bouton cliqué: "+text$(1) return
Ceci me permet de choisir: - en ligne 16, la position de la Toolbar - en ligne 22, la taille des icônes, en plaçant cette ligne en commentaire pour les 16x16 Il faut bien sûr adapter le chemin vers KGF.dll en ligne 7. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 9:49 | |
| Bon, maintenant ça fonctionne, mais si seulement je déplace dll_call4("ModifyToolbar",7,32,0,0) après dll_call4("ModifyToolbar",2,0,0,0). Or dans ton exemple que tu viens de poster avec tes icones en 16x16 qui s'agrandissent en 32x32, ça fonctionne normalement et pourtant dll_call4("ModifyToolbar",7,32,0,0) est avant dll_call4("ModifyToolbar",2,0,0,0) J'ai mis sur mon webdav un dossier toolbar.zip avec les icones 32x32 que j'utilise et le programme essai_toolbar.bas.Comme j'essaye de comprendre comment fonctionne ces fonctions, j'ai découvert un autre problème avec les séparateurs et les diviseurs! J'ai introduit cette portion de code: - Code:
-
' ... code ... hint$ = "afficher la photo" icon$ = repico$+"photo.ico" res% = dll_call4("AddButtonToToolbar",1,(-1),adr(hint$),adr(icon$)) hint$ = "prendre une photo" icon$ = repico$+"camera.ico" res% = dll_call4("AddButtonToToolbar",2,(-1),adr(hint$),adr(icon$))
' §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ' §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ' §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ' LE n° id% n'a aucune incidence, mais sur les toolbar verticales, si on utilise §§ ' un diviseur "icon$="" (chaîne vide)" il n'apparait pas et si on utilise §§ ' un séparateur "icon$ = " " (1 espace)" des icones disparaissent et les autres §§ ' sont mélangés! et pire sur le coté droit, side%=3 elles sont à moitié visible §§ hint$ = "" :' §§ icon$ = " " :' §§ res% = dll_call4("AddButtonToToolbar",3,(-1),adr(hint$),adr(icon$)) :' §§ hint$ = "aller à gauche" :' §§ ' §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ' §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ' §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§
icon$ = repico$+"back_alt.ico" res% = dll_call4("AddButtonToToolbar",3,(-1),adr(hint$),adr(icon$)) hint$ = "avancer" ' etc ...
voici ce que ça donne à l'affichage: Seulement la moitié de mes boutons, mélangés et à moitié visibles! J'espère ne pas te faire perdre ton temps cette fois ci! A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 9:54 | |
| J'ai pris le zip et je regarde ce qui se passe. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 10:01 | |
| En position verticale (side%=1 ou 3), il est normal que le diviseurne s'affiche pas. En effet, le diviseur est toujours une petite barre verticale, ce qui n'a aucun sens pour une Toolbar verticale. Je l'ignore donc simplement. Je vais ajouter cette info dans la doc.
Le coup des séparateurs est cocasse. Je vais creuser cela. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 10:12 | |
| Klaus, tu pourrais faire une petite barre horizontale dans ce cas là comme séparateur plutôt que de l'ignorer, non ? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 13:11 | |
| J'ai corrigé le problème des séparateurs. Tu peux réessayer en rechargeant KGF.dll à partir de mon WebDav ? Je voudrais savoir si le problème technique est résolu pour toi, avant de publier une nouvelle version... Merci !
@Jicehel: le problème des diviseurs est lié à celui des séparateurs. Cela vient du fait que toutes les icônes ont la même hauteur sauf pour le séparateur et c'est ce qui a causé le problème de Bignono. Si j'introduis une image de ligne horizontale, j'aurai le même problème. Je vais voir ce que je peux faire. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 14:33 | |
| Super Klaus! Le problème est résolu. Ça fonctionne! Si je trouve d'autres problèmes je n'hésiterais pas à t'en faire part, quoique là je ne vais guère avoir de temps libre pour tester la suite de tes fonctions, j'ai du monde à la maison et il faut gérer. Merci encore A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 14:40 | |
| Merci beaucoup, Bignono ! J'apprécie ton aide - c'est précieux pour la mise au point en conditions réelles, en sortant du "labo" !
Je vais faire une nouvelle version contenant tout ça, avec la doc correspondante.
| |
| | | Contenu sponsorisé
| Sujet: Re: V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar | |
| |
| | | | V2.63 du 02/12/2013 - correction bug dans AddButtonToToolbar | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |