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.64 du 03/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.64 du 03/12/2013: correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 15:02 | |
| Nouvelle version: V2.64 du 03/12/2013
Nouveauté: correction d'un bug dans AddButtonToToolbar en cas de Toolbar verticale
Modules modifiés: KGF.dll KGF.chm KGF.doc KGF.pdf
En cas de Toolbar verticale, l'ajout d'un bouton de type séparateur mélangeait complètement les boutons, et pouvait même provoquer un décalage des boutons tel qu'on ne voyait plus que la partie droite des boutons. Ceci est corrigé. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 16:50 | |
| Juste entre 2 réunions familiales: Il faudrait préciser dans la doc qu'il vaut mieux utiliser la toolbar avec un border_small pour le form, car si la toolbar est en bas (side%=2) et que l'on clique sur le bouton agrandir du form, elle ne reste pas collée au bas du form, et si elle est à droite verticale (side%=3) et que l'on clique sur le bouton agrandir, la toolbar reste où elle est! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 19:49 | |
| Alors ça, c'est un autre problème. C'est sûrement pareil si tu redimensionnes la fenêtre avec la souris. Il faut que je regarde ça - il y a un moyen de corriger cela. Un défi en plus, mais j'aime ça ! | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 23:13 | |
| Sur mon webdav j'ai mis un autre dossier zip. Télécharge toolbar2.zip Il n'y a que 2 icones et le fichier toolbar2.bas qui me pose problèmes! Je crée la toolbar avec un bouton créer, puis soit je l'efface ou soit je l'enlève. Puis quand je décide de la créer à nouveau, la première icone apparait, puis Access Violation etc... suivi d'un Panoramic a cesser de fonctionner, parfois suivi d'une Exception Violation ... Et enfin j'arrête le processus panoramic. De temps en temps le programme fonctionne bien (je crois que c'est quand j'ai cliqué sur les boutons de la toolbar avant), et on voit à nouveau se faire un décalage de la toolbar verticale à droite lors de sa recréation. Quand on l'efface aussi, les boutons disparaissent et elle rétrécit à quelques pixels alors que lorsqu'elle est horizontale (side%=0) juste les boutons disparaissent. À moins que je m'y soit mal pris dans mon petit programme d'essai? A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Mar 3 Déc 2013 - 23:49 | |
| Je vais voir ça prochainement. Pour le moment, je suis en plein dans l'interception du changement de dimension de la form pour replacer la toolbar... ça avance. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Mer 4 Déc 2013 - 11:22 | |
| @Bignono: Recharge stp KGF.dll à partir de mon WebDav. J'ai fait ce qu'il faut pour que les Toolbars restent collées sur leur bord de prédilection, quelque soit la façon dont on modifie la taille de la fenêtre, que ce soit par les boutons Maximiser/Minimiser/Restaurer, par les commandes WITH et HEIGHT de Panoramic ou par la souris. C'est bluffant de voir la barre rester amoureusement collée contre son bord ! Pour cela, il faut insérer la ligne suivante: - Code:
-
res% = dll_call4("ModifyToolbar",8,0,0,0)
à l'endroit de ton choix, par exemple juste après CreateToolbar. A partir de ce moment, la Toolbar va rester collée. Et en cas de besoin, la ligne - Code:
-
res% = dll_call4("ModifyToolbar",9,0,0,0)
désactive ce comportement. C'est juste pour voir ce que ça donne sous W7. Après les résultats de ce test, je pourrai publier la nouvelle version avec la doc qui va avec. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Mer 4 Déc 2013 - 18:29 | |
| Bonsoir Klaus Je viens juste de rentrer après m'être occupé aujourd'hui de mes enfants (musique, danse, sport et catéchiste) Ouf! dur dur ! les mercredis! La modification de ta dll fonctionne à merveille! Donc tu peux modifier la doc. Pense à regarder mon second programme et voir ce qui ne va pas! Merci beaucoup. A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Mer 4 Déc 2013 - 18:33 | |
| Merci ! Ce sera pour ce soir. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Jeu 5 Déc 2013 - 20:47 | |
| @Bignono: Peux-tu refaire stp un test en rechargeant KGF.dll de mon WebDav ? J'ai apporté la modif suivante: maintenant, lorsque la taille de la fenêtre change, l'EDIT de synchronisation reçoit un évènement ON_CHANGE avec TEXT$(n) ayant la valeur "-1" signifiant "changement de taille". Ceci permet d'adapter d'autres objets de la fenêtre si nécessaire. Voici ma version de ton programme, avec un CONTAINER bouchant le reste de la fenêtre. Et ce container adapte sa taille automatiquement si la taille de la fenêtre change. Il faudra certainement que tu changes les valeurs des variables chg_hor% et chg_ver% pour W7. - Code:
-
' bignono_toolbar.bas
label click_toolbar
dim res%, icon$, after%, hint$ dim chg_hor% : chg_hor% = 50 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = 40 : ' <=========== ajuster ici pour W7
dll_on "KGF.dll"
edit 1 : hide 1
on_change 1,click_toolbar
container 10 : caption 10,"Espace utilisable" width 10,width(0)-chg_hor% : height 10,height(0)+245
' ============================================================== ' 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 res% = dll_call4("ModifyToolbar",8,1,0,0) width 0, width(0) + 300 : width 10,width(0)-chg_hor% height 0,screen_y-chg_ver% 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$))
' res% = dll_call4("ModifyToolbar",8,1,0,0) END
click_toolbar: if text$(1)="-1" width 10,width(0)-chg_hor% : height 10,height(0)-chg_ver% else message "Bouton cliqué: "+text$(1) end_if return
| |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Jeu 5 Déc 2013 - 21:19 | |
| Ça fonctionne nickel! Pour info voici les valeurs que j'ai trouvé: - Code:
-
dim chg_hor% : chg_hor% = 58 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = 38 : ' <=========== ajuster ici pour W7
Voilà pourquoi tu as demandé un objet panel à Jack! A+ | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Jeu 5 Déc 2013 - 21:37 | |
| rectificatif Klaus, Quand j'utilise mes propres icones 32x32 voici ce que cela m'affiche: mais quand je redimensionne manuellement ou avec le bouton agrandir, tout rentre dans l'ordre. voici le code avec quelques petites modifs et mes icones. A+ | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Jeu 5 Déc 2013 - 21:45 | |
| Pire! avec res% = dll_call3("CreateToolbar",handle(0),handle(1),2): avec res% = dll_call3("CreateToolbar",handle(0),handle(1),1): avec res% = dll_call3("CreateToolbar",handle(0),handle(1),0): | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Jeu 5 Déc 2013 - 23:23 | |
| Tu as vu le changement dans Click_Toolbar ? - Code:
-
click_toolbar: if text$(1)="-1" width 10,width(0)-chg_hor% : height 10,height(0)-chg_ver% else message "Bouton cliqué: "+text$(1) end_if return | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Ven 6 Déc 2013 - 6:33 | |
| Bonjour Klaus Oui,oui Klaus, j'ai vu et j'ai compris mon erreur. Mais, quand side%=2 ou 3, la toolbar n'est plus collée au bord du form quand on lance le programme. Mais dès qu'on redimensionne la fenêtre, elle se met en place normalement. J'ai fait l'essai également en supprimant tout ce qui concerne le container, et j'ai le même résultat avec 2 messages de boutons cliqué=-1, ce qui est normal. Bon je ne suis pas là de la journée. A ce soir. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Ven 6 Déc 2013 - 12:18 | |
| J'ai corrigé le tir. Tu veux bien faire un nouveau test stp, en rechargeant la DLL de mon WebDav ? Sous XP, c'est bon maiintenant pour les 4 positions, dans les déux tailles d'icônes. J'ai adapté le programme de démo à cela. Il y a une section "paramètres de confiduration de la Toolbar" où tu choisis la position de la Toolbar et la taille des icônes (soit 8 possibilités), et une autre section où tu dois adapter les décalages horizontaux et verticaux pour W7. J'y ai intégré les valeurs que tu m'avais données. - Code:
-
' bignono_toolbar.bas
label click_toolbar
dim res%, icon$, after%, hint$
' ============================================================== ' début des paramètres de confiduration de la Toolbar dim position_toolbar% : position_toolbar% = 3 : ' 0,1,2,3 dim icon_size% : icon_size% = 32 : ' 16 ou 32 ' fin des paramètres de confiduration de la Toolbar ' ==============================================================
select position_toolbar% case 0 ' ************* XP dim chg_hor% : chg_hor% = 10 dim chg_ver% : chg_ver% = (icon_size%-16)+59 ' ************* W7 ' dim chg_hor% : chg_hor% = 8 : ' <=========== ajuster ici pour W7 ' dim chg_ver% : chg_ver% = (icon_size%-16)+59 : ' <=========== ajuster ici pour W7 case 1 ' ************* XP dim chg_hor% : chg_hor% = (icon_size%-16) + 34 dim chg_ver% : chg_ver% = 40 ' ************* W7 ' dim chg_hor% : chg_hor% = (icon_size%-16)+42 : ' <=========== ajuster ici pour W7 ' dim chg_ver% : chg_ver% = 38 : ' <=========== ajuster ici pour W7 case 2 ' ************* XP dim chg_hor% : chg_hor% = 8 dim chg_ver% : chg_ver% = (icon_size%-16)+59 ' ************* W7 ' dim chg_hor% : chg_hor% = 8 : ' <=========== ajuster ici pour W7 ' dim chg_ver% : chg_ver% = (icon_size%-16)+59 : ' <=========== ajuster ici pour W7 case 3 ' ************* XP dim chg_hor% : chg_hor% = (icon_size%-16) + 34 dim chg_ver% : chg_ver% = 40 ' ************* W7 ' dim chg_hor% : chg_hor% = (icon_size%-16)+42 : ' <=========== ajuster ici pour W7 ' dim chg_ver% : chg_ver% = 38 : ' <=========== ajuster ici pour W7 end_select
dll_on "KGF.dll"
edit 1 : hide 1
on_change 1,click_toolbar
container 10 : caption 10,"Espace utilisable"
' ============================================================== ' res% = dll_call2("CreateToolbar",handle(cible%),handle(edit%),side%) ' ============================================================== res% = dll_call3("CreateToolbar",handle(0),handle(1),position_toolbar%)
' ============================================================== ' res% = dll_call4("ModifyToolbar",action%,p1%,p2%,p3%) ' ============================================================== res% = dll_call4("ModifyToolbar",1,255,255,255) : ' blanc res% = dll_call4("ModifyToolbar",7,icon_size%,0,0) : ' icones 32 x 32 height 0,800 : width 0, width(0) + 300 adapter_container() res% = dll_call4("ModifyToolbar",8,1,0,0) 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$))
' res% = dll_call4("ModifyToolbar",8,1,0,0) END
sub adapter_container() select position_toolbar% case 0 top 10,icon_size%+8 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 1 left 10,icon_size%+8 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 2 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 3 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% end_select end_sub
click_toolbar: if text$(1)="-1" adapter_container() else message "Bouton cliqué: "+text$(1) end_if return
Après, je vais modifier la fonction CreateToolbar en lui ajoutant un paramètre qui sera le handle du container (et bientôt le handle du panel), et KGF.dll va automatiquement ajuster les dimensions du container lorsque la taille de la fenêtre varie. La procédure adapter_container() va donc disparaître. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Ven 6 Déc 2013 - 21:42 | |
| Bonsoir Klaus, Bon en apparence, les paramètres devraient être comme cela: - Code:
-
select position_toolbar% case 0 ' ************* XP ' dim chg_hor% : chg_hor% = 10 ' dim chg_ver% : chg_ver% = (icon_size%-16)+59 ' ************* W7 dim chg_hor% : chg_hor% = 16 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = (icon_size%-16)+62 : ' <=========== ajuster ici pour W7 case 1 ' ************* XP ' dim chg_hor% : chg_hor% = (icon_size%-16) + 34 ' dim chg_ver% : chg_ver% = 40 ' ************* W7 dim chg_hor% : chg_hor% = (icon_size%-16)+40 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = 38 : ' <=========== ajuster ici pour W7 case 2 ' ************* XP ' dim chg_hor% : chg_hor% = 8 ' dim chg_ver% : chg_ver% = (icon_size%-16)+59 ' ************* W7 dim chg_hor% : chg_hor% = 16 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = (icon_size%-16)+62 : ' <=========== ajuster ici pour W7 case 3 ' ************* XP ' dim chg_hor% : chg_hor% = (icon_size%-16) + 34 ' dim chg_ver% : chg_ver% = 40 ' ************* W7 dim chg_hor% : chg_hor% = (icon_size%-16)+42 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = 38 : ' <=========== ajuster ici pour W7 end_select
Mais, j'ai remarqué quelque chose: si side%=0 ou 1 et que l'on clique sur le bouton "agrandir" du form, le container suit bien sans problèmes et prend les dimensions intérieures du form. Et si on reclique sur le même bouton pour faire revenir le form à sa taille d'origine, le container ne se remet pas exactement à sa taille précédente lui et des ascenseurs apparaissent le long du form. J'ai fait le petit programme suivant qui montre aussi le même phénomène avec un container sur lequel il faut cliquer pour agrandir ou réduire la fenêtre. - Code:
-
label change dim i : i=1
container 1 width 1,width(0)-16 height 1,height(0)-38 color 1,0,240,0
on_click 1,change end
change: if odd(i)=1 maximize 0:i=i+1 else normal 0:i=i+1 end_if
width 1,width(0)-16 height 1,height(0)-38
return
Je verrais la suite demain, si j'ai le temps, je suis trop fatigué! A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Ven 6 Déc 2013 - 23:15 | |
| J'ai retesté l'ensemble des combinaisons "côté d'attachement"et "taille d'icône". Je peux faire autant de maximiser/restaurer/minimiser que je veux, dans n'importe quel ordre, je peux changer la taille de la fenêtre par la souris comme je veux, ve n'ai pas d'ascenseur qui apparaît, et le container reste à la bonne taille. Sous XP, bien sûr. Mais j'ai rencontré le même phénomène lors de la mise au point des paramètres. Ce qu'il faut faire: - provoquer un cas où ça dérape - repérer les deux paramètres concernés, et jouer sur celui qui crée de débordement du container, et seulement celui-ci. D'abord Passer la valueur addionnée à droite dans la formule, à 100 ou 200, et réessayer. Le container sera bien sûr trop court, dans une direction ou dans l'autre. - diminuer alors progressivement cette valeur ce qui augmente la taille du container, jsqu'à isoler la limite de déclenchement des ascenseurs, et rester juste au-dessus. C'est ainsi que j'ai mis au point les paramètres pour XP. Si j'arrive à avoir les vrais paramètres pour W7, je vais coder tout cela dans la DLL, et la taille du container (si un en spécifie un), sera actualisée automatiquement dans la DLL. Et un pourra alors placer les autres objets dans le container comme si on les plaçait dans la form 0, sans avoir à se soucier du décalage des coordonnées en fonction de la présence de la Toolbar. J'ai essayé ton code exemple, et sous XP, je peux cliquer dessus autant que je veux, je n'ai jamais d'ascenseur, idem avec minimiser/maximiser/restaurer par les boutons de la form. Je suis sûr que le problème vient d'un des paramètres de décalage qui n'est pas bon pour W7. Voici le source que j'utilise actuellement, après avoir intégré tes constantes dans mon code: - Code:
-
' bignono_toolbar.bas
label click_toolbar
dim res%, icon$, after%, hint$
' ============================================================== ' début des paramètres de confiduration de la Toolbar dim system$ system$ = "XP" ' system$ = "W7" dim position_toolbar% : position_toolbar% = 3 : ' 0,1,2,3 dim icon_size% : icon_size% = 32 : ' 16 ou 32 ' fin des paramètres de confiduration de la Toolbar ' ==============================================================
select position_toolbar% case 0 if system$="XP" ' ************* XP dim chg_hor% : chg_hor% = 10 dim chg_ver% : chg_ver% = (icon_size%-16)+59 else ' ************* W7 dim chg_hor% : chg_hor% = 16 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = (icon_size%-16)+62 : ' <=========== ajuster ici pour W7 end_if case 1 if system$="XP" ' ************* XP dim chg_hor% : chg_hor% = (icon_size%-16) + 34 dim chg_ver% : chg_ver% = 40 else ' ************* W7 dim chg_hor% : chg_hor% = (icon_size%-16)+40 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = 38 : ' <=========== ajuster ici pour W7 end_if case 2 if system$="XP" ' ************* XP dim chg_hor% : chg_hor% = 8 dim chg_ver% : chg_ver% = (icon_size%-16)+59 else ' ************* W7 dim chg_hor% : chg_hor% = 16 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = (icon_size%-16)+62 : ' <=========== ajuster ici pour W7 end_if case 3 if system$="XP" ' ************* XP dim chg_hor% : chg_hor% = (icon_size%-16) + 34 dim chg_ver% : chg_ver% = 40 else ' ************* W7 dim chg_hor% : chg_hor% = (icon_size%-16)+42 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = 38 : ' <=========== ajuster ici pour W7 end_if end_select
dll_on "KGF.dll"
edit 1 : hide 1
on_change 1,click_toolbar
container 10 : caption 10,"Espace utilisable"
' ============================================================== ' res% = dll_call2("CreateToolbar",handle(cible%),handle(edit%),side%) ' ============================================================== res% = dll_call3("CreateToolbar",handle(0),handle(1),position_toolbar%)
' ============================================================== ' res% = dll_call4("ModifyToolbar",action%,p1%,p2%,p3%) ' ============================================================== res% = dll_call4("ModifyToolbar",1,255,255,255) : ' blanc res% = dll_call4("ModifyToolbar",7,icon_size%,0,0) : ' icones 32 x 32 height 0,800 : width 0, width(0) + 300 adapter_container() res% = dll_call4("ModifyToolbar",8,1,0,0) 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$))
' res% = dll_call4("ModifyToolbar",8,1,0,0) END
sub adapter_container() select position_toolbar% case 0 top 10,icon_size%+8 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 1 left 10,icon_size%+8 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 2 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 3 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% end_select end_sub
click_toolbar: if text$(1)="-1" adapter_container() else message "Bouton cliqué: "+text$(1) end_if return
J'ai ajouté un paramètre pour configurer XP/W7... C'est plus simple que de jouer sur les commentaires. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Sam 7 Déc 2013 - 7:52 | |
| Bonjour Klaus C'est exactement la manière dont je procède pour trouver les paramètres. De plus, je colore le fond du form en rouge et le container en gris, et au fur et à mesure je recouvre le fond du form par le container jusqu'à ne plus voir le rouge. Bon, là, j'ai essayé d'isoler la valeur où les ascenseurs ne se déclenchent plus, et horreur! Je crois que c'est un BUG sous Windows 7! voici les paramètres pour la toolbar uniquement pour side%=0 ou 1: - Code:
-
case 0 ' ************* XP ' dim chg_hor% : chg_hor% = 10 ' dim chg_ver% : chg_ver% = (icon_size%-16)+59 ' ************* W7 dim chg_hor% : chg_hor% = 16 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = (icon_size%-16)+79 : ' <=========== ajuster ici pour W7 case 1 ' ************* XP ' dim chg_hor% : chg_hor% = (icon_size%-16) + 34 ' dim chg_ver% : chg_ver% = 40 ' ************* W7 dim chg_hor% : chg_hor% = (icon_size%-16)+57 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = 38 : ' <=========== ajuster ici pour W7
Et pour ceux qui sont sous W7, voici mon programme d'essai avec les valeurs en REM à partir desquelles les ascenseurs ne se déclenchent pas: - Code:
-
label change dim i : i=1 color 0,255,0,0
container 1 width 1,width(0)-16 height 1,height(0)-38 color 1,0,240,0
on_click 1,change end
change: if odd(i)=1 maximize 0:i=i+1 else normal 0:i=i+1 end_if
width 1,width(0)-16 height 1,height(0)-38
' Pour éviter les ascenceurs, il faut mettre ' soit==> ' width 1,width(0)-33 ' soit==> ' height 1,height(0)-55 return
On voit bien qu'il y a une différence de 17 pixels! entre le bord droit ou bas du form. Si quelqu'un peut faire l'essai sous W7 et confirmer mes dires, merci. J'ai encore pas mal de choses à faire aujourd'hui, et ne comptez pas sur moi avant ce soir. A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Sam 7 Déc 2013 - 11:30 | |
| Merci, Bignono. J'ai mémorisé ces valeurs et jattends une confirmation plus approfondie. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Sam 7 Déc 2013 - 22:57 | |
| Bonsoir Klaus A ce que je constate personne n'a vérifié sous W7 mon programme test sur le container qui montre le problème des ascenseurs. Bon, je ne sais pas si c'est bien utile de mettre un container en plus de la toolbar, à moins que ce soit un choix optionnel. Le principal c'est que la toolbar reste collée au bord du form lors du redimensionnement. A + | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Sam 7 Déc 2013 - 23:19 | |
| Ce sera bien sûr un choix optionnel. J'avais prévu de mettre un paramètre supplémentaire à WBCreate pour donner le handle du container (du paneo bientôt). Si l'on passe ce paramètre à zéro, ça fonctionnne comme maintenant. Si l'on passe le handle du container, l'adaption de la position et des dimensions du container seront gérées automatiquement par la DLL. Ce serait simple si j'avais les bonnes mesures. Pour XP, je peux le faire - il me manque W7 et éventuellement W8.
L'avantage du container (panel), c'est de pouvoir placer les objets de la form dans le container de la même manière que pour form 0, sans se préoccuper de la présence de la toolbar. Sinon, les objets passent facilement par-dessus la toolbar, qe qui n'est franchement pas présentable.
Dans un programme Delphi normal, la présence de la toolbar limite automatiquement l'espace utilisateur pour les autres objets. Aucun chevauchement n'est possible. Par contre, Panoramic ne connaît pas a toolbar. Je la créer en Delphi et je l'introduis dans la form 0, à l'insu de Panoramic. C'est pourquoi je veux gérer correctement l'espace restant, et le container (panel) va me servir à ça. | |
| | | Invité Invité
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Sam 7 Déc 2013 - 23:36 | |
| - Citation :
- A ce que je constate personne n'a vérifié sous W7 mon programme test sur le container qui montre le problème des ascenseurs.
J'aurai bien voulu essayé, mais de la toolbar, rien n'est installé, et je suis trop occupé pour autre chose. En ce moment il y a beaucoup de monde qui est en prière qui regarde et ne dit rien. Espérons que c'est pour la paix dans le monde! Sur ma barre de lancement (en AutoIt -là c'est PsPad, et non Panoramic), j'ai réussi à mettre un bouton pour lancer l'exécution d'un fichier html placé dans le Bloc-Note pour être visualisé dans une fenêtre Panoramic. C'est nettement plus pratique pour faire des testes. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Sam 7 Déc 2013 - 23:42 | |
| Pas de problème, Cosmos70 ! Je comprends très bien. C'est pénible de sortir la tête d'un problème ardu si l'on est plngé dedans, à fond. Cette demande s'adressait, en général, à tous ceux qui ont un W7 ou W8 et qui ont envie de jouer un peu les cobayes... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Dim 8 Déc 2013 - 1:36 | |
| @Bignono: Pour avoir des chiffres fiables, télécharge stp KGF.dll à partir de mon WebDav et fais marcher cette version trafiquée de ton programme: - Code:
-
' bignono_toolbar.bas
label click_toolbar
dim res%, icon$, after%, hint$
' ============================================================== ' début des paramètres de confiduration de la Toolbar dim system$ system$ = "XP" ' system$ = "W7" dim position_toolbar% : position_toolbar% = 3 : ' 0,1,2,3 dim icon_size% : icon_size% = 32 : ' 16 ou 32 ' fin des paramètres de confiduration de la Toolbar ' ==============================================================
select position_toolbar% case 0 if system$="XP" ' ************* XP dim chg_hor% : chg_hor% = 10 dim chg_ver% : chg_ver% = (icon_size%-16)+59 else ' ************* W7 dim chg_hor% : chg_hor% = 16 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = (icon_size%-16)+79 : ' 62 : ' <=========== ajuster ici pour W7 end_if case 1 if system$="XP" ' ************* XP dim chg_hor% : chg_hor% = (icon_size%-16) + 34 dim chg_ver% : chg_ver% = 40 else ' ************* W7 dim chg_hor% : chg_hor% = (icon_size%-16)+57 : ' 40 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = 38 : ' <=========== ajuster ici pour W7 end_if case 2 if system$="XP" ' ************* XP dim chg_hor% : chg_hor% = 8 dim chg_ver% : chg_ver% = (icon_size%-16)+59 else ' ************* W7 dim chg_hor% : chg_hor% = 16 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = (icon_size%-16)+62 : ' <=========== ajuster ici pour W7 end_if case 3 if system$="XP" ' ************* XP dim chg_hor% : chg_hor% = (icon_size%-16) + 34 dim chg_ver% : chg_ver% = 40 else ' ************* W7 dim chg_hor% : chg_hor% = (icon_size%-16)+42 : ' <=========== ajuster ici pour W7 dim chg_ver% : chg_ver% = 38 : ' <=========== ajuster ici pour W7 end_if end_select
dll_on "KGF.dll"
edit 1 : hide 1
on_change 1,click_toolbar
container 10 : caption 10,"Espace utilisable" ' ============================================================== ' res% = dll_call2("CreateToolbar",handle(cible%),handle(edit%),side%) ' ============================================================== res% = dll_call3("CreateToolbar",handle(0),handle(1),position_toolbar%)
' ============================================================== ' res% = dll_call4("ModifyToolbar",action%,p1%,p2%,p3%) ' ============================================================== res% = dll_call4("ModifyToolbar",1,255,255,255) : ' blanc res% = dll_call4("ModifyToolbar",7,icon_size%,0,0) : ' icones 32 x 32 height 0,800 : width 0, width(0) + 300 adapter_container() res% = dll_call4("ModifyToolbar",8,1,0,0) 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
memo 17 : parent 17,10 : font_name 17,"Courier" top 17,30 : left 17,30 : width 17,300 : height 17,100 res% = dll_call2("TestWindowsMetrix",handle(0),handle(17)) end
sub adapter_container() select position_toolbar% case 0 top 10,icon_size%+8 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 1 left 10,icon_size%+8 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 2 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 3 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% end_select end_sub
click_toolbar: if text$(1)="-1" adapter_container() else message "Bouton cliqué: "+text$(1) end_if return
Il faut adapter le chemin vers la DLL ainsi que le choix du système. Le programme affiche le container, la toolbar vide, et un mémo avec 3 lignes de chiffres. Pourrais-tu me poster une copie du contenu du mémo stp ? Si possible avec les 4 positions de la Toolbar. Je pense que j'aurai alors tout ce qu'il faut pour avoir des mesures sérieuses. Merci d'avance ! | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar Dim 8 Déc 2013 - 9:46 | |
| Bonjour Klaus voici: - Code:
-
pour side%=0 Window: (0,0) ->(800,900) Client: (0,0) ->(762,884) Toolbar: (8,30)->(71,892)
pour side%=1 Window: (0,0) ->(800,900) Client: (0,0) ->(762,884) Toolbar: (8,30)->(792,51)
pour side%=2 Window: (0,0) ->(800,900) Client: (0,0) ->(762,884) Toolbar: (8,752)->(793,892)
pour side%=3 Window: (0,0) ->(800,900) Client: (0,0) ->(762,884) Toolbar: (850,30)->(792,893)
A+ | |
| | | Contenu sponsorisé
| Sujet: Re: V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar | |
| |
| | | | V2.64 du 03/12/2013: correction bug dans AddButtonToToolbar | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |