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.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: V2.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar Lun 25 Nov 2013 - 15:32 | |
| Nouvelle version: KGF/dll V2.57 du 25/111/2013
Nouveautés: - possibilité d'utiliser une bibliothèque d'icônes personnelle pour AddButtonToToolbar - correction du bug dans RemoveToolbarModules modifiés: KGF.dll KGF_SUB.bas KGF.chm KGF.doc KGF.pdfLa doc et les sources sont à jour. Présentation des deux nouveautés: On peut maintenant créer une ou plusieurs bibliothèques d'icônes personnelles. Une telle bibliothèque porte l'extension *.ILB (Icon Library), et elle doit être fabriquée par l'utilitaire IcoLibrary.exe (sur mon WebDav, dossier DLLs\IcoLibrary. On doit informer KGF.dll du nom de fichier de la bibliothèque à utiliser. Cela se fait par ModifyToolbar, code action 5. Ensuite, dans AddButtonToToolbar, on peut utiliser "USER_x" comme nom dde fichier icône, où x représente le numéro de l'icône dans la bibliothèque. Ensuite, le bug gênant dans RemoveLibrary a été corrigé. On peut maintenant créer une Toolbar, lui ajouter des boutons, puis l'effacer et remettre des boutons, et la supprimer complètement pour en créer une autre, etc. Il n'y a plus de problème avec ça. Et voici une petite démo de ces possibilités (il faut adapter le nom et chemin de fichier vers la bibliothèque personnelle, en ligne 70): - Code:
-
' test_Toolbar.bas
label click_toolbar, enlever, close0, creer, effacer, recreer
dim res%, icon$, after%, hint$, lib$
on_close 0,close0
KGF_initialize("KGF.dll")
button 1 : top 1,70 : left 1,10 : caption 1,"Créer" on_click 1,creer button 2 : top 2,70 : left 2,120 : caption 2,"Effacer" on_click 2,effacer
button 3 : top 3,70 : left 3,230 : caption 3,"Recréer" on_click 3,recreer
button 11 : top 11,110 : left 11,10 : caption 11,"Enlever" on_click 11,enlever
end
enlever: RemoveToolbar(1) : ' supprimer la toolbar return
close0: RemoveToolbar(1) : ' supprimer la toolbar message "Fini." dll_off return
click_toolbar: message "Bouton cliqué: "+text$(CreateToolbar_edit%) return
creer: ' edit 777 : hide 777 : on_change 777,click_toolbar
' res% = dll_call2("CreateToolbar",handle(0),handle(777)) CreateToolbar(0,0) ' res% = dll_call4("ModifyToolbar",1,255,255,0) : ' jaune ModifyToolbar(1,255,255,0) : ' jaune
width 0, width(0) + 200 ' res% = dll_call4("ModifyToolbar",2,0,0,0) ModifyToolbar(2,0,0,0)
hint$ = "" : ' sans hint ' icon$ = "C:\Documents and Settings\Klaus\Mes documents\Mes projets Delphi\KGF\Icones 16x16\new.ico" : ' bouton image icon$ = "KGF_1" : ' bouton image after% = -1 ' res% = dll_call4("AddButtonToToolbar",1,after%,adr(hint$),adr(icon$)) AddButtonToToolbar(1,after%,hint$,icon$)
hint$ = "" : ' sans hint icon$ = " " : ' séparateur after% = -1 ' res% = dll_call4("AddButtonToToolbar",0,after%,adr(hint$),adr(icon$)) AddButtonToToolbar(0,after%,hint$,icon$)
hint$ = "Ouverture du fichier" : ' avec hint ' icon$ = "C:\Documents and Settings\Klaus\Mes documents\Mes projets Delphi\KGF\Icones 16x16\open.ico" : ' bouton image icon$ = "KGF_2" : ' bouton image icon$ = "USER_56" lib$ = ".\KGF.ilb" : ' utiliser KGF.ilb en tant que librairie personnelle ModifyToolbar(5,adr(lib$),0,0) after% = -1 ' res% = dll_call4("AddButtonToToolbar",2,after%,adr(hint$),adr(icon$)) AddButtonToToolbar(2,after%,hint$,icon$)
hint$ = "" : ' sans hint icon$ = "" : ' diviseur after% = -1
' res% = dll_call4("AddButtonToToolbar",0,after%,adr(hint$),adr(icon$)) AddButtonToToolbar(0,after%,hint$,icon$)
' res% = dll_call4("ModifyToolbar",3,0,0,0) : ' désactiver la toolbar ModifyToolbar(3,0,0,0) : ' désactiver la toolbar
' res% = dll_call4("ModifyToolbar",3,0,1,0) : ' activer la toolbar ModifyToolbar(3,0,1,0) : ' désactiver la toolbar
' res% = dll_call4("ModifyToolbar",3,0,0,0) : ' désactiver bouton 3 ModifyToolbar(3,3,0,0) : ' désactiver bouton 3
' res% = dll_call4("ModifyToolbar",3,3,1,0) : ' activer bouton 3 ModifyToolbar(3,3,1,0) : ' activer bouton 3
' res% = dll_call4("ModifyToolbar",4,0,0,0) : ' invisible la toolbar ModifyToolbar(4,0,0,0) : ' désactiver la toolbar
' res% = dll_call4("ModifyToolbar",4,0,1,0) : ' visible la toolbar ModifyToolbar(4,0,1,0) : ' désactiver la toolbar
' res% = dll_call4("ModifyToolbar",4,3,0,0) : ' invisible bouton 3 ModifyToolbar(4,3,0,0) : ' désactiver bouton 3
' res% = dll_call4("ModifyToolbar",4,3,1,0) : ' visible bouton 3 ModifyToolbar(4,3,1,0) : ' activer bouton 3
return
effacer: RemoveToolbar(0) : ' effacer la toolbar return
recreer: CreateToolbar(0,0) ' message "c ****************" ModifyToolbar(1,255,255,0) : ' jaune ' message "d ***************"
width 0, width(0) + 200 ModifyToolbar(2,0,0,0) ' message "d1 *************"
hint$ = "" : ' sans hint icon$ = "C:\Documents and Settings\Klaus\Mes documents\Mes projets Delphi\KGF\Icones 16x16\new.ico" : ' boutin image after% = -1 ' res% = dll_call4("AddButtonToToolbar",1,after%,adr(hint$),adr(icon$)) AddButtonToToolbar(1,after%,hint$,icon$)
hint$ = "" : ' sans hint icon$ = " " : ' séparateur after% = -1 ' res% = dll_call4("AddButtonToToolbar",0,after%,adr(hint$),adr(icon$)) AddButtonToToolbar(0,after%,hint$,icon$)
hint$ = "Ouverture du fichier" : ' avec hint icon$ = "C:\Documents and Settings\Klaus\Mes documents\Mes projets Delphi\KGF\Icones 16x16\open.ico" : ' boutin image after% = -1 ' res% = dll_call4("AddButtonToToolbar",2,after%,adr(hint$),adr(icon$)) AddButtonToToolbar(2,after%,hint$,icon$)
hint$ = "" : ' sans hint icon$ = "" : ' diviseur after% = -1 ' res% = dll_call4("AddButtonToToolbar",0,after%,adr(hint$),adr(icon$)) AddButtonToToolbar(0,after%,hint$,icon$) return
#INCLUDE "KGF_SUB.bas"
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: V2.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar Lun 25 Nov 2013 - 16:46 | |
| Super Klaus, les programmes vont pouvoir avoir des interfaces plus évoluées.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar Lun 25 Nov 2013 - 17:45 | |
| J'ai étendu le nombre d'icônes internes à 360 ! Sans changement de version pour KGF.dll. et un bug mineur dans l'outil IcoLibrary.exe a été corrigé.
Utilisez IcoLibrary.exe pour afficher la liste des icônes disponibles, à partir du fichier KGF.ilb dans le dossier DLLs\IcoLibrary sur mon WebDav. Ce fichier a également été modifié pour refléter l'état actuel des icônes internes.
Sauf besoin spécifique, je n'ajouterai plus d'icônes internes à KGF.dll. Le choix actuel est très vaste. Pour des besoins personnels, il convient d'utiliser la technique des bibliothèques personnelles (établies par IcoLibrary.exe) et utilisables par par ModifyToolbar code action 5, puis AddButtonToToolbar avec le nom de fichier "USER=x".
En recherchant sur le net avec le critère "free icons 16x16", on trouve des dizaines de sites avec littéralement des dizaines de milliers d'icônes gratuites. Gardez juste en mémoire qu'il faut tdes icônes 16x16 pixels, en format *.ICO. Si c'est un autre format, il faut utiliser un convertisseur de format. | |
| | | pan59
Nombre de messages : 367 Age : 67 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Toolbar Lun 25 Nov 2013 - 20:58 | |
| Bonsoir.
Bravo Klaus.
Mais ce qui me gêne un peu, c'est la dimension des icônes.
Le format 16x16 étant bien trop petit pour l'utilisation dans mon programme.
Ne pourrait-on pas le choisir (exemple: 32x32, ou autre).
Merci. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar Lun 25 Nov 2013 - 21:27 | |
| Je finis les fonctionnalités pour ma Toolbar comme je l'ai en tête. Je verrai la taille après. Je pense que 32x32 sera possible. | |
| | | pan59
Nombre de messages : 367 Age : 67 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: ToolBar. Lun 25 Nov 2013 - 21:31 | |
| Bonsoir.
OK, merci Klaus.
Aurons-nous le choix d'afficher un objet Toolbar de façon verticale ou horizontale ?
Et un format d'icône au choix ?
Merci. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: V2.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar Lun 25 Nov 2013 - 21:35 | |
| Pour que tu es un peu de challenge Klaus, je pense que l'idée de pan59 consistant à pouvoir choisir la taille des icônes entre 8 et 64 pixels par exemple serait vraiment sympa et te donnerais un peu de fil à retordre (au moins un minimum même si ça sera sans doute moins complexe que ce que tu viens déjà d'accomplir ...) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar Lun 25 Nov 2013 - 22:34 | |
| Je finis d'abord tout ce que j'ai à faire pour 16x16 pixels. C'est proche. Ensuite, je pense que le 32x32 pixels sera possible facilement.
Je n'envisage pas d'aller au-delà. Il est par exemple facile, avec Panoramic, de faire un container avec une série de picture de 48x48, 64x64 etc et de charger ces picture, soit à partir de JPG ou BMP, soit à partir de ICO via une fonction de KGF.dll. Donc, en-dehors du projet actuel de Toolbar. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: V2.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar Lun 25 Nov 2013 - 22:57 | |
| C'est sûr Klaus... J'avoue que là je cherchais juste un peu à te donner de quoi de casser un peu la tête C'est très bien en 16 et en 32. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar Mar 26 Nov 2013 - 9:01 | |
| Voici un petit exemple de ce qu'on peut faire avec la Toolbar. J'ai choisi uniquement des icônes internes (par "KGF_x"). Il faudra bien sûr adapter le code en remplaçant des commandes MESSAGE par des appels de procédures pour chaque fonction créée, ou par des GOSUB. - Code:
-
' essai_Toolbar.bas
labels() creer_toolbar()
end
sub labels() label click_toolbar end_sub
sub creer_toolbar() KGF_initialize("KGF.dll") CreateToolbar(0,0) ModifyToolbar(1,255,255,0) AddButtonToToolbar(1,-1,"Nouveau","KGF_334") AddButtonToToolbar(2,-1,"Ouvrir","KGF_90") AddButtonToToolbar(3,-1,"Imprimer","KGF_96") AddButtonToToolbar(4,-1,"Chercher","KGF_360") AddButtonToToolbar(0,-1,""," ") AddButtonToToolbar(5,-1,"Paramètres","KGF_309") AddButtonToToolbar(6,-1,"Aide","KGF_289") AddButtonToToolbar(0,-1,""," ") AddButtonToToolbar(7,-1,"Sortie","KGF_170") end_sub
click_toolbar: ' signaler l'icône cliquée message "Click sur icône "+text$(CreateToolbar_Edit%) ' agir selon l'identifiant de l'icône select val(text$(CreateToolbar_Edit%)) case 1 message "Nouveau" case 2 message "Ouvrir" case 3 message "Imprimer" case 4 message "Chercher" case 5 message "Paramètres" case 6 message "Aide" case 7 message "Sortie" terminate end_select return
#INCLUDE "KGF_SUB.bas"
En si peu de lignes, c'est puissant, non ? Et notez la gestion de l'évènement lorsqu'on clique sur une des icônes. Il suffit de déclarer le label click_Toolbar, et tout vient à cet endroit... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: V2.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar Mar 26 Nov 2013 - 14:45 | |
| L'interface est clairement simplifiée au niveau de la mise en place. Le source n'en sera que plus lisible | |
| | | Contenu sponsorisé
| Sujet: Re: V2.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar | |
| |
| | | | V2.57 du 25/11/2013 - bibliothèque personnelle pour Toolbar | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |