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 |
|
|
| KGF_dll - nouvelles versions | |
|
+8JL35 Marc papydall Jicehel Yannick pascal10000 Minibug Klaus 12 participants | |
Auteur | Message |
---|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Sam 3 Déc 2016 - 9:09 | |
| Bravo Klaus pour cette nouvelle fonction ! Elle simplifie au maximum la création d'une barre d’icônes avec en plus un seul fichier pour les images. On peut difficilement faire plus simple ! Je l'intégrerai sûrement plus tard dans GPP... Merci pour toutes ces innovations que tu apporte dans KGF. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 3 Déc 2016 - 11:09 | |
| KGF.dll V7.01 du 03/12/2016Nouveautés: - les boutons réagissent au survol, au clic et à l'état inactivéModules modifiés: KGF.dllLa doc est inchangée et reste à corriger. Les sources sont à jour. Un bouton peut maintenant avoir 4 états: - Code:
-
dim sbsNormal% : sbsNormal% = 0 dim sbsHover% : sbsHover% = 1 dim sbsHit% : sbsHit% = 2 dim sbsInactive% : sbsInactive% = 3 dim sbaImageIndex% : sbaImageIndex% = 5 Les deux premiers sont implémentés. Il faut donc 4 images pour un bouton (elles peuvent être identiques pour un bouton qui ne doit pas changer d'aspect !). Ces images doivent avoir des indices qui se suivent, dans la Imagelist. Voici le le programme de démo adapté (uniquement la définition des états): - Code:
-
' test_SpecialButton.bas
label click_SC1, click_SC2
dim scoHorizontal% : scoHorizontal% = 0 dim scoVertical% : scoVertical% = 1
dim sbsNormal% : sbsNormal% = 0 dim sbsHover% : sbsHover% = 1 dim sbsHit% : sbsHit% = 2 dim sbsInactive% : sbsInactive% = 3
dim sbaHide% : sbaHide% = 0 dim sbaShow% : sbaShow% = 1 dim sbaInactive% : sbaInactive% = 2 dim sbaActive% : sbaActive% = 3 dim sbaImageIndex% : sbaImageIndex% = 5
dim res%, SC1%, SC2%, SB1%(5), SB2%(5), nom$, ilb$, IL%
edit 1 : hide 1 : on_change 1,click_SC1 edit 2 : hide 2 : on_change 2,click_SC2
dll_on "KGF.dll" ilb$ = "KGF.ilb"
full_space 0
IL% = dll_call2("CreateImageList",16,16) res% = dll_call2("LoadImageList",IL%,adr(ilb$))
SC1% = dll_call6("CreateSpecialContainer",handle(0),16,16,scoHorizontal%,IL%,handle(1)) res% = dll_call4("LocateSpecialContainer",SC1%,200,10,scoHorizontal%)
SC2% = dll_call6("CreateSpecialContainer",handle(0),32,32,scoVertical%,IL%,handle(2)) res% = dll_call4("LocateSpecialContainer",SC2%,10,200,scoVertical%) ' scoVertical% nom$ = "hor1" SB1%(1) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,1,adr(nom$)) nom$ = "hor2" SB1%(2) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,4,adr(nom$)) nom$ = "hor3" SB1%(3) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,7,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB1%(2),sbaHide%,0)
nom$ = "ver1" SB2%(1) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,21,adr(nom$)) nom$ = "ver2" SB2%(2) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,28,adr(nom$)) nom$ = "ver3" SB2%(3) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,31,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB2%(3),sbaInactive%,0) nom$ = "ver4" SB2%(4) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,34,adr(nom$))
end
click_SC1: message "clic SC1% bouton "+text$(1) return click_SC2: message "clic SC2% bouton "+text$(2) return
Les clics sont identifiés avec numéro de barre et numéro de bouton. La doc à jour est dans le WebDav, dossier DLLs, et se nomme Fonctions de boutons spéciaux.rtf.
Dernière édition par Klaus le Sam 3 Déc 2016 - 14:10, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 3 Déc 2016 - 13:31 | |
| Chouette, je vais tester cela rapidement. Merci pour toutes ces évolutions Klaus. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 3 Déc 2016 - 14:12 | |
| Je viens de remettre à jour. On peut même maintenant changer l'indice de base des images à afficher en cours d'exécution. Ce n'est plus figé après la création d'un bouton. On peut donc aisément basculer d'une série de 4 images vers une autre.
Le programme démo a été corrigé en fonction de cela (un paramètre supplémentaire à ManageSpecialButton), la DLL est à jour partout et la doc sur le WebDav, dossier DLLs. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 3 Déc 2016 - 22:50 | |
| KGF.dll V7.02 du 03/12/2016 Nouveautés: - nouvelle fonction ManageSpecialContainerModules modifiés: KGF.dllLa doc est inchangée et reste à corriger. Les sources sont à jour. La doc spécifique de ces fonctions est à jour sur le WenDav, dossier DLLs. Cette fonction permet de changer la largeur de la bordure de la SpecialBar (défaut; 1 pixel) et sa couleur de fon (défaut: jaune). Le programme de démo ci-dessous change la bordure de la barre verticale à 50 pixels, et la couleur à Rouge: - Code:
-
' test_SpecialButton.bas
label click_SC1, click_SC2
dim scoHorizontal% : scoHorizontal% = 0 dim scoVertical% : scoVertical% = 1
dim sbsNormal% : sbsNormal% = 0 dim sbsHover% : sbsHover% = 1 dim sbsHit% : sbsHit% = 2 dim sbsInactive% : sbsInactive% = 3
dim sbaHide% : sbaHide% = 0 dim sbaShow% : sbaShow% = 1 dim sbaInactive% : sbaInactive% = 2 dim sbaActive% : sbaActive% = 3 dim sbaImageIndex% : sbaImageIndex% = 4
dim scaBorderwidth% : scaBorderwidth% = 0 dim scaColor% : scaColor% = 1
dim res%, SC1%, SC2%, SB1%(5), SB2%(5), nom$, ilb$, IL%
edit 1 : hide 1 : on_change 1,click_SC1 edit 2 : hide 2 : on_change 2,click_SC2
dll_on "KGF.dll" ilb$ = "KGF.ilb"
full_space 0
IL% = dll_call2("CreateImageList",16,16) res% = dll_call2("LoadImageList",IL%,adr(ilb$))
SC1% = dll_call6("CreateSpecialContainer",handle(0),16,16,scoHorizontal%,IL%,handle(1)) res% = dll_call4("LocateSpecialContainer",SC1%,200,10,scoHorizontal%)
SC2% = dll_call6("CreateSpecialContainer",handle(0),32,32,scoVertical%,IL%,handle(2)) res% = dll_call4("LocateSpecialContainer",SC2%,10,200,scoVertical%) ' scoVertical% nom$ = "hor1" SB1%(1) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,1,adr(nom$)) nom$ = "hor2" SB1%(2) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,4,adr(nom$)) nom$ = "hor3" SB1%(3) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,7,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB1%(2),sbaHide%,0)
nom$ = "ver1" SB2%(1) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,21,adr(nom$)) nom$ = "ver2" SB2%(2) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,28,adr(nom$)) nom$ = "ver3" SB2%(3) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,31,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB2%(3),sbaInactive%,0) nom$ = "ver4" SB2%(4) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,34,adr(nom$))
res% = dll_call3("ManageSpecialContainer",SC2%,scaBorderwidth%,20) res% = dll_call3("ManageSpecialContainer",SC2%,scaColor%,255)
end
click_SC1: message "clic SC1% bouton "+text$(1) return click_SC2: message "clic SC2% bouton "+text$(2) return
Si la largeur de la bordure est mis à 0, il n'y a pas de bordure. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 4 Déc 2016 - 2:37 | |
| Nouvelle version: KGF.dll V7.03 du 04/12/2016Nouveautés: - nouvelle fonction DockSpecialContainerModules modifiés: KGF.dllLa doc est inchangée et reste à corriger. Les sources sont à jour. La doc spécifique de ces fonctions est à jour sur le WenDav, dossier DLLs Cette fonction permet de "docker" deux containers spéciaux (deux toolbars), selon des critères multiples. L'usage est simple: - Code:
-
res% = dll_call3("DockSpecialContainer",SC1%,SC2%,action%) La barre SC2% (mobile) sera collée à la barre SC1% (fixe), en fonction du code action: - Code:
-
dim scdaRight% : scdaRight% = 0 dim scdaSoRight% : scdaSoRight% = 1 dim scdaBottom% : scdaBottom% = 2 dim scdaSoBottom% : scdaSoBottom% = 3 dim scdaCoRight% : scdaCoRight% = 4 dim scdaCoBottom% : scdaCoBottom% = 5 dim scdaCdRight% : scdaCdRight% = 6 dim scdaCdBottom% : scdaCdBottom% = 7 dim scdaCodRight% : scdaCodRight% = 8 dim scdaCodBottom% : scdaCodBottom% = 9 avec les explications suivantes: - Code:
-
Explication des codes: scda = SpecialContainerDockAction Right = docker SC2 à droite de SC1 Bottom = docker SC2 en-dessous de SC1 So = Same orientation - même orientation Co = Convert orientation - convertir l'orientation de SC2 à celle de SC1 Cd = Convert dimensions - convertir les dimensions de SC2 à celles de SC1 Cod = Convert orientation and dimensions - convertir m'orientation et dimensions de SC2 à celles de SC1 Voici le programme de démo dans lequel léeffet de certains de ces codes est montré: - Code:
-
' test_SpecialButton.bas
label click_SC1, click_SC2
dim scoHorizontal% : scoHorizontal% = 0 dim scoVertical% : scoVertical% = 1
dim sbsNormal% : sbsNormal% = 0 dim sbsHover% : sbsHover% = 1 dim sbsHit% : sbsHit% = 2 dim sbsInactive% : sbsInactive% = 3
dim sbaHide% : sbaHide% = 0 dim sbaShow% : sbaShow% = 1 dim sbaInactive% : sbaInactive% = 2 dim sbaActive% : sbaActive% = 3 dim sbaImageIndex% : sbaImageIndex% = 4
dim scaBorderwidth% : scaBorderwidth% = 0 dim scaColor% : scaColor% = 1
dim scdaRight% : scdaRight% = 0 dim scdaSoRight% : scdaSoRight% = 1 dim scdaBottom% : scdaBottom% = 2 dim scdaSoBottom% : scdaSoBottom% = 3 dim scdaCoRight% : scdaCoRight% = 4 dim scdaCoBottom% : scdaCoBottom% = 5 dim scdaCdRight% : scdaCdRight% = 6 dim scdaCdBottom% : scdaCdBottom% = 7 dim scdaCodRight% : scdaCodRight% = 8 dim scdaCodBottom% : scdaCodBottom% = 9
dim res%, SC1%, SC2%, SB1%(5), SB2%(5), nom$, ilb$, IL%
edit 1 : hide 1 : on_change 1,click_SC1 edit 2 : hide 2 : on_change 2,click_SC2
dll_on "KGF.dll" ilb$ = "KGF.ilb"
full_space 0
IL% = dll_call2("CreateImageList",16,16) res% = dll_call2("LoadImageList",IL%,adr(ilb$))
SC1% = dll_call6("CreateSpecialContainer",handle(0),16,16,scoHorizontal%,IL%,handle(1)) res% = dll_call4("LocateSpecialContainer",SC1%,200,10,scoHorizontal%)
SC2% = dll_call6("CreateSpecialContainer",handle(0),32,32,scoVertical%,IL%,handle(2)) res% = dll_call4("LocateSpecialContainer",SC2%,10,200,scoVertical%) ' scoVertical% nom$ = "hor1" SB1%(1) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,1,adr(nom$)) nom$ = "hor2" SB1%(2) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,4,adr(nom$)) nom$ = "hor3" SB1%(3) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,7,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB1%(2),sbaHide%,0)
nom$ = "ver1" SB2%(1) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,21,adr(nom$)) nom$ = "ver2" SB2%(2) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,28,adr(nom$)) nom$ = "ver3" SB2%(3) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,31,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB2%(3),sbaInactive%,0) nom$ = "ver4" SB2%(4) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,34,adr(nom$))
res% = dll_call3("ManageSpecialContainer",SC2%,scaBorderwidth%,20) res% = dll_call3("ManageSpecialContainer",SC2%,scaColor%,255)
message "Maintenant, on attache (SC1,SC2,à droite)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaRight%) message "Maintenant, on attache (SC2,SC1,à droite)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaRight%) message "Maintenant, on attache (SC1,SC2,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoRight%) message "Maintenant, on attache (SC2,SC1,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoRight%)
message "Maintenant, on attache (SC1,SC2,en bas)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaBottom%) message "Maintenant, on attache (SC2,SC1,en bas)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaBottom%) message "Maintenant, on attache (SC1,SC2,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoBottom%) message "Maintenant, on attache (SC2,SC1,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdBottom%)
message "Maintenant, on attache (SC1,SC2,à droite en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodRight%) message "Maintenant, on attache (SC1,SC2,en bas en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodBottom%)
end
click_SC1: message "clic SC1% bouton "+text$(1) return click_SC2: message "clic SC2% bouton "+text$(2) return
Vous verrez - c'est assez spectaculaire. EDITJe vous rappelle que dans la ImageList, vous pouvez mettre les images que vous voulez: des smileys, des images de boutons téléchargées sur internet pour des pages Web, vos photos.. J'ai utilisé KGF.ilb pour la facilité, mais tout est possible ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 4 Déc 2016 - 10:58 | |
| Nouvelle version: KGF.dll V7.04 du 04/12/2016Nouveautés: - nouveau code fonction scaRestore% pour ManageSpecialContainerModules modifiés: KGF.dllLa doc est inchangée et reste à corriger. Les sources sont à jour. La doc spécifique de ces fonctions est à jour sur le WenDav, dossier DLLs C'est un énorme pas en avant ! Les modifications d'un SpecialContainer sont maintenant mémorisées dans un historique propre à chaque container. Et on peut revenir en arrière pas à pas, ou à un état particulier sélectionné par paramètre ! Ainsi, le programme de démo ci-après montre les différents effets de DockSpecialContainer, ce qui est déjà spectaculaire, mais ensuite, revient en arrière pas à pas, puis directement à l'état initial, sur les deux containers ! Bluffant ! - Code:
-
' test_SpecialButton.bas
label click_SC1, click_SC2
dim scoHorizontal% : scoHorizontal% = 0 dim scoVertical% : scoVertical% = 1
dim sbsNormal% : sbsNormal% = 0 dim sbsHover% : sbsHover% = 1 dim sbsHit% : sbsHit% = 2 dim sbsInactive% : sbsInactive% = 3
dim sbaHide% : sbaHide% = 0 dim sbaShow% : sbaShow% = 1 dim sbaInactive% : sbaInactive% = 2 dim sbaActive% : sbaActive% = 3 dim sbaImageIndex% : sbaImageIndex% = 4
dim scaBorderwidth% : scaBorderwidth% = 0 dim scaColor% : scaColor% = 1 dim scaRestore% : scaRestore% = 2
dim scdaRight% : scdaRight% = 0 dim scdaSoRight% : scdaSoRight% = 1 dim scdaBottom% : scdaBottom% = 2 dim scdaSoBottom% : scdaSoBottom% = 3 dim scdaCoRight% : scdaCoRight% = 4 dim scdaCoBottom% : scdaCoBottom% = 5 dim scdaCdRight% : scdaCdRight% = 6 dim scdaCdBottom% : scdaCdBottom% = 7 dim scdaCodRight% : scdaCodRight% = 8 dim scdaCodBottom% : scdaCodBottom% = 9
dim res%, SC1%, SC2%, SB1%(5), SB2%(5), nom$, ilb$, IL%
edit 1 : hide 1 : on_change 1,click_SC1 edit 2 : hide 2 : on_change 2,click_SC2
dll_on "KGF.dll" ilb$ = "KGF.ilb"
full_space 0
IL% = dll_call2("CreateImageList",16,16) res% = dll_call2("LoadImageList",IL%,adr(ilb$))
SC1% = dll_call6("CreateSpecialContainer",handle(0),16,16,scoHorizontal%,IL%,handle(1)) res% = dll_call4("LocateSpecialContainer",SC1%,200,10,scoHorizontal%)
SC2% = dll_call6("CreateSpecialContainer",handle(0),32,32,scoVertical%,IL%,handle(2)) res% = dll_call4("LocateSpecialContainer",SC2%,10,200,scoVertical%) ' scoVertical% nom$ = "hor1" SB1%(1) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,1,adr(nom$)) nom$ = "hor2" SB1%(2) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,4,adr(nom$)) nom$ = "hor3" SB1%(3) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,7,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB1%(2),sbaHide%,0)
nom$ = "ver1" SB2%(1) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,21,adr(nom$)) nom$ = "ver2" SB2%(2) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,28,adr(nom$)) nom$ = "ver3" SB2%(3) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,31,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB2%(3),sbaInactive%,0) nom$ = "ver4" SB2%(4) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,34,adr(nom$))
res% = dll_call3("ManageSpecialContainer",SC2%,scaBorderwidth%,20) res% = dll_call3("ManageSpecialContainer",SC2%,scaColor%,255)
message "Maintenant, on attache (SC1,SC2,à droite)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaRight%) message "Maintenant, on attache (SC2,SC1,à droite)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaRight%) message "Maintenant, on attache (SC1,SC2,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoRight%) message "Maintenant, on attache (SC2,SC1,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoRight%)
message "Maintenant, on attache (SC1,SC2,en bas)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaBottom%) message "Maintenant, on attache (SC2,SC1,en bas)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaBottom%) message "Maintenant, on attache (SC1,SC2,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoBottom%) message "Maintenant, on attache (SC2,SC1,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdBottom%)
message "Maintenant, on attache (SC1,SC2,à droite en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodRight%) message "Maintenant, on attache (SC1,SC2,en bas en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodBottom%)
message "Maintenant, on inverse la dernière opération de SC2..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Encore..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Encore..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Maintenant, on revient à la configuration initiale de SC2..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,2) message "Maintenant, on revient à la configuration initiale de SC1..." res% = dll_call3("ManageSpecialContainer",SC1%,scaRestore%,2) message "Fini."
end
click_SC1: message "clic SC1% bouton "+text$(1) return click_SC2: message "clic SC2% bouton "+text$(2) return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 4 Déc 2016 - 12:24 | |
| Bon, j' ai supprimé mon post. C' était une erreur d' enregistrement de Panoramic-Editor
En tout cas Bravo, c' est super ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 4 Déc 2016 - 12:29 | |
| Le programme de démo, tel qu'il est, utilise KGF.ilb pour les icônes. Si tu ne l'as pas, tu peux le charger sur mon WebDav, dossier DLLs\IcoLibrary.
Mais tu peux aussi faire ta propre ILB, mais alors, il fait adapter les numéros d'indice des images de base des différents boutons (3ème paramètre de la fonction CreateSpecialButton). Je rappelle que chaque bouton a besoin de 4 images qui doivent se suivre dans le fichier ILB.
Pour tester, commence par charger KGF.ilb et place-le dans le dossier où tu auras mis le source du programme de démo. Tu verras alors les icônes apparaître, réagir au survol de la souris (!) et au clic (re-!).
EDIT
On s'est croisé. Content que ça marche ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 4 Déc 2016 - 14:38 | |
| Klaus, J' ai créé un "SpecialContainer" sur un form annexe J' y ai placé un bouton Jusque là tout va bienComme mon formulaire est multi-taches, j' ai voulu jouer avec la fonction "ManageSpecialButton" et là : Panoramic a cessé de fonctionner. - Code:
-
variables() constantes() labels() init() gui() end ' ------------------------------------------------------------------------------ ' DECLARATION DES VARIABLES ' ------------------------------------------------------------------------------
sub variables() dim no% end_sub
' ------------------------------------------------------------------------------ ' DECLARATION DES CONSTANTES ' ------------------------------------------------------------------------------
sub constantes() dim_local i% ' dossier courant dim Path$ : Path$=dir_current$ if right$(Path$,1)="" : Path$=left$(Path$,len(Path$)-1) : end_if Path$=Path$+"" ' fichiers dim kgf$ dim ilb$ ' relatives aux boutons speciaux dim sbsNormal% : sbsNormal% = 0 dim sbsHover% : sbsHover% = 1 dim sbsHit% : sbsHit% = 2 dim sbsInactive% : sbsInactive% = 3
dim sbaHide% : sbaHide% = 0 dim sbaShow% : sbaShow% = 1 dim sbaInactive% : sbaInactive% = 2 dim sbaActive% : sbaActive% = 3
dim scaBorderwidth% : scaBorderwidth% = 0 dim scaColor% : scaColor% = 1 dim scaRestore% : scaRestore% = 2
dim SBN$(10)
' objets form 0 ' -> visibles dim mm% : no%=no%+1 : mm%=no% dim sm%(2) : for i%=1 to 2 : no%=no%+1 : sm%(i%)=no% : next i% ' -> invisibles dim EditSB%: no%=no%+1 : EditSB%=no% ' objets form annexe dim F_annexe% : no%=no%+1 : F_annexe%=no% ' objets kgf dim IML% dim SpecialCont%(10) dim specialbuttonNum%(10) end_sub
' ------------------------------------------------------------------------------ ' DECLARATION DES LABELS ' ------------------------------------------------------------------------------
sub labels() label clic,change end_sub
' ------------------------------------------------------------------------------ ' INITIALISATIONS ' ------------------------------------------------------------------------------
sub init() dim_local i%,res% ' adresses des fichiers kgf$ = path$+"KGF.dll" ilb$ = path$+"KGF.ilb"
' activation de kgf dll_on kgf$ ' création/chargement de l' imagelist IML% = dll_call2("CreateImageList",16,16) res% = dll_call2("LoadImageList",IML%,adr(ilb$))
' nommination des boutons spéciaux for i%=1 to 10 : SBN$(i%)="btn_"+str$(i%-1) : next i% end_sub
' ------------------------------------------------------------------------------ ' INTERFACE ' ------------------------------------------------------------------------------
sub gui() main_menu mm% sub_menu sm%(1) : parent sm%(1),mm% : caption sm%(1),"Cas n°1" : on_click sm%(1),clic sub_menu sm%(2) : parent sm%(2),mm% : caption sm%(2),"Cas n°2" : on_click sm%(2),clic create_hide edit EditSB% on_change EditSB%,change create_show end_sub
' ------------------------------------------------------------------------------
sub FormAnnexe(cas%) dim_local res%,nom$
if object_exists(F_annexe%)=1 show F_annexe% else form F_annexe% SpecialCont%(1) = dll_call6("CreateSpecialContainer",handle(F_annexe%),16,16,0,IML%,handle(EditSB%)) res% =dll_call4("LocateSpecialContainer",SpecialCont%(1),10,10,0) message "Tout va bien le SpecialContainer est bien créé et à la bonne place"+chr$(13)+"avec les bonnes dimensions" stop nom$=SBN$(1) specialbuttonNum%(1) = dll_call4("CreateSpecialButton",SpecialCont%(1),sbsNormal%,1,adr(nom$)) message "Tout va bien le SpecialButton est affiché" stop end_if caption F_annexe%,"Cas n°"+str$(cas%) ' =====> CECI NE FONCTIONNE PAS <===== ' je ne peux pas conditionner show/hide en fonction du cas où est appelé la fenêtre if cas%=2 res% = dll_call2("ManageSpecialButton",specialbuttonNum%(1),1) else res% =dll_call2("ManageSpecialButton",specialbuttonNum%(1),0) end_if end_sub
' ------------------------------------------------------------------------------ ' MENU ' ------------------------------------------------------------------------------
clic: if number_click = sm%(1) FormAnnexe(1) return end_if if number_click = sm%(2) FormAnnexe(2) return end_if return
' ------------------------------------------------------------------------------
change: if number_change = EditSB% message "Le SpecialButton n° "+trim$(text$(EditSB%))+" a été cliqué !" return end_if return
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 4 Déc 2016 - 14:50 | |
| Regarde dans mon programme de démo: la fonction ManageSpecialButton a 3 paramètres, pas 2 ! Tu as oublié le code action. Voici la syntaxe: - Code:
-
res% = dll_call3("ManageSpecialButton",SB%,action%,par%) Toujours dans le code du programme de démo, tu découvres les codes action possibles: - Code:
-
dim sbaHide% : sbaHide% = 0 dim sbaShow% : sbaShow% = 1 dim sbaInactive% : sbaInactive% = 2 dim sbaActive% : sbaActive% = 3 dim sbaImageIndex% : sbaImageIndex% = 4
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 4 Déc 2016 - 14:53 | |
| Nouvelle version: KGF.dll V7.05 du 04/12/2016Nouveautés: - certaines fonctions de SpecialContainer retournent maintenant un indice de restaurationModules modifiés: KGF.dllLa doc est inchangée et reste à corriger. Les sources sont à jour. La doc spécifique de ces fonctions est à jour sur le WenDav, dossier DLLs Cet indice peut être utilisé pour restaurer le container au niveau obtenu à l'issue de la fonction. Le programme de démo suivant utilise cela pour les deux containers: - Code:
-
' test_SpecialButton.bas
label click_SC1, click_SC2
dim scoHorizontal% : scoHorizontal% = 0 dim scoVertical% : scoVertical% = 1
dim sbsNormal% : sbsNormal% = 0 dim sbsHover% : sbsHover% = 1 dim sbsHit% : sbsHit% = 2 dim sbsInactive% : sbsInactive% = 3
dim sbaHide% : sbaHide% = 0 dim sbaShow% : sbaShow% = 1 dim sbaInactive% : sbaInactive% = 2 dim sbaActive% : sbaActive% = 3 dim sbaImageIndex% : sbaImageIndex% = 4
dim scaBorderwidth% : scaBorderwidth% = 0 dim scaColor% : scaColor% = 1 dim scaRestore% : scaRestore% = 2
dim scdaRight% : scdaRight% = 0 dim scdaSoRight% : scdaSoRight% = 1 dim scdaBottom% : scdaBottom% = 2 dim scdaSoBottom% : scdaSoBottom% = 3 dim scdaCoRight% : scdaCoRight% = 4 dim scdaCoBottom% : scdaCoBottom% = 5 dim scdaCdRight% : scdaCdRight% = 6 dim scdaCdBottom% : scdaCdBottom% = 7 dim scdaCodRight% : scdaCodRight% = 8 dim scdaCodBottom% : scdaCodBottom% = 9
dim res%, SC1%, SC2%, SB1%(5), SB2%(5), nom$, ilb$, IL% dim svg_SC1%, svg_SC2%
edit 1 : hide 1 : on_change 1,click_SC1 edit 2 : hide 2 : on_change 2,click_SC2
dll_on "KGF.dll" ilb$ = "KGF.ilb"
full_space 0
IL% = dll_call2("CreateImageList",16,16) res% = dll_call2("LoadImageList",IL%,adr(ilb$))
SC1% = dll_call6("CreateSpecialContainer",handle(0),16,16,scoHorizontal%,IL%,handle(1)) res% = dll_call4("LocateSpecialContainer",SC1%,200,10,scoHorizontal%)
SC2% = dll_call6("CreateSpecialContainer",handle(0),32,32,scoVertical%,IL%,handle(2)) res% = dll_call4("LocateSpecialContainer",SC2%,10,200,scoVertical%) ' scoVertical% nom$ = "hor1" SB1%(1) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,1,adr(nom$)) nom$ = "hor2" SB1%(2) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,4,adr(nom$)) nom$ = "hor3" SB1%(3) = dll_call4("CreateSpecialButton",SC1%,sbsNormal%,7,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB1%(2),sbaHide%,0) svg_SC1% = res% message "A la fin, on restaurera la situation de SC1 à l''indice "+str$(svg_SC1%)
nom$ = "ver1" SB2%(1) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,21,adr(nom$)) nom$ = "ver2" SB2%(2) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,28,adr(nom$)) nom$ = "ver3" SB2%(3) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,31,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB2%(3),sbaInactive%,0) nom$ = "ver4" SB2%(4) = dll_call4("CreateSpecialButton",SC2%,sbsNormal%,124,adr(nom$))
res% = dll_call3("ManageSpecialContainer",SC2%,scaBorderwidth%,20) res% = dll_call3("ManageSpecialContainer",SC2%,scaColor%,255) svg_SC2% = res% message "A la fin, on restaurera la situation de SC2 à l''indice "+str$(svg_SC2%)
message "Maintenant, on attache (SC1,SC2,à droite)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaRight%) message "Maintenant, on attache (SC2,SC1,à droite)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaRight%) message "Maintenant, on attache (SC1,SC2,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoRight%) message "Maintenant, on attache (SC2,SC1,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoRight%)
message "Maintenant, on attache (SC1,SC2,en bas)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaBottom%) message "Maintenant, on attache (SC2,SC1,en bas)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaBottom%) message "Maintenant, on attache (SC1,SC2,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoBottom%) message "Maintenant, on attache (SC2,SC1,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdBottom%)
message "Maintenant, on attache (SC1,SC2,à droite en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodRight%) message "Maintenant, on attache (SC1,SC2,en bas en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodBottom%)
message "Maintenant, on inverse la dernière opération de SC2..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Encore..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Encore..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Maintenant, on revient à la configuration initiale de SC2..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,svg_SC2%) message "Maintenant, on revient à la configuration initiale de SC1..." res% = dll_call3("ManageSpecialContainer",SC1%,scaRestore%,svg_SC1%) message "Fini."
end
click_SC1: message "clic SC1% bouton "+text$(1) return click_SC2: message "clic SC2% bouton "+text$(2) return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 4 Déc 2016 - 15:36 | |
| Oups...autant pour moi... C' est vrai que cela fonctionne mieux avec 3 paramètres. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 4 Déc 2016 - 17:23 | |
| Nouvelle version: KGF.dll V7.06 du 04/12/2016Nouveautés: - CreateSpecialButton: nouveau paramètreModules modifiés: KGF.dllLa doc est inchangée et reste à corriger. Les sources sont à jour. La doc spécifique de ces fonctions est à jour sur le WenDav, dossier DLLs Ces boutons peuvent maintenant être affichés avec des coins arrondis, au rayon de courbure paramétrable ! Le nouveau paramètre est donc le rayon de courbure, et in 0 indique "rectangle strict". Le programme ci-dessous créer la barre d'outils SC1 avec des boutons strictement rectangulaires, et ba larre SC2 avec des boutons aux coins arrondis avec un rayon de 8 pixels: - Code:
-
' test_SpecialButton.bas
label click_SC1, click_SC2, click_EB1
dim scoHorizontal% : scoHorizontal% = 0 dim scoVertical% : scoVertical% = 1
dim sbsNormal% : sbsNormal% = 0 dim sbsHover% : sbsHover% = 1 dim sbsHit% : sbsHit% = 2 dim sbsInactive% : sbsInactive% = 3
dim sbaHide% : sbaHide% = 0 dim sbaShow% : sbaShow% = 1 dim sbaInactive% : sbaInactive% = 2 dim sbaActive% : sbaActive% = 3 dim sbaImageIndex% : sbaImageIndex% = 4
dim scaBorderwidth% : scaBorderwidth% = 0 dim scaColor% : scaColor% = 1 dim scaRestore% : scaRestore% = 2
dim scdaRight% : scdaRight% = 0 dim scdaSoRight% : scdaSoRight% = 1 dim scdaBottom% : scdaBottom% = 2 dim scdaSoBottom% : scdaSoBottom% = 3 dim scdaCoRight% : scdaCoRight% = 4 dim scdaCoBottom% : scdaCoBottom% = 5 dim scdaCdRight% : scdaCdRight% = 6 dim scdaCdBottom% : scdaCdBottom% = 7 dim scdaCodRight% : scdaCodRight% = 8 dim scdaCodBottom% : scdaCodBottom% = 9
dim res%, SC1%, SC2%, SB1%(5), SB2%(5), nom$, ilb$, IL%, EB1% dim svg_SC1%, svg_SC2%
edit 1 : hide 1 : on_change 1,click_SC1 edit 2 : hide 2 : on_change 2,click_SC2 edit 3 : hide 3 : on_change 3,click_EB1
dll_on "KGF.dll" ilb$ = "KGF.ilb"
full_space 0
IL% = dll_call2("CreateImageList",16,16) res% = dll_call2("LoadImageList",IL%,adr(ilb$))
SC1% = dll_call6("CreateSpecialContainer",handle(0),16,16,scoHorizontal%,IL%,handle(1)) res% = dll_call4("LocateSpecialContainer",SC1%,200,10,scoHorizontal%)
SC2% = dll_call6("CreateSpecialContainer",handle(0),32,32,scoVertical%,IL%,handle(2)) res% = dll_call4("LocateSpecialContainer",SC2%,10,200,scoVertical%) ' scoVertical% nom$ = "hor1" SB1%(1) = dll_call5("CreateSpecialButton",SC1%,sbsNormal%,1,0,adr(nom$)) nom$ = "hor2" SB1%(2) = dll_call5("CreateSpecialButton",SC1%,sbsNormal%,4,0,adr(nom$)) nom$ = "hor3" SB1%(3) = dll_call5("CreateSpecialButton",SC1%,sbsNormal%,7,0,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB1%(2),sbaHide%,0) svg_SC1% = res% message "A la fin, on restaurera la situation de SC1 à l''indice "+str$(svg_SC1%)
nom$ = "ver1" SB2%(1) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,21,8,adr(nom$)) nom$ = "ver2" SB2%(2) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,28,8,adr(nom$)) nom$ = "ver3" SB2%(3) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,31,8,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB2%(3),sbaInactive%,0) nom$ = "ver4" SB2%(4) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,124,8,adr(nom$))
res% = dll_call3("ManageSpecialContainer",SC2%,scaBorderwidth%,20) res% = dll_call3("ManageSpecialContainer",SC2%,scaColor%,255) svg_SC2% = res% message "A la fin, on restaurera la situation de SC2 à l''indice "+str$(svg_SC2%)
message "Maintenant, on attache (SC1,SC2,à droite)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaRight%) message "Maintenant, on attache (SC2,SC1,à droite)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaRight%) message "Maintenant, on attache (SC1,SC2,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoRight%) message "Maintenant, on attache (SC2,SC1,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoRight%)
message "Maintenant, on attache (SC1,SC2,en bas)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaBottom%) message "Maintenant, on attache (SC2,SC1,en bas)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaBottom%) message "Maintenant, on attache (SC1,SC2,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoBottom%) message "Maintenant, on attache (SC2,SC1,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdBottom%)
message "Maintenant, on attache (SC1,SC2,à droite en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodRight%) message "Maintenant, on attache (SC1,SC2,en bas en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodBottom%)
message "Maintenant, on inverse la dernière opération de SC2..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Encore..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Encore..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Maintenant, on revient à la configuration initiale de SC2..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,svg_SC2%) message "Maintenant, on revient à la configuration initiale de SC1..." res% = dll_call3("ManageSpecialContainer",SC1%,scaRestore%,svg_SC1%) message "Fini."
end
click_SC1: message "clic SC1% bouton "+text$(1) return click_SC2: message "clic SC2% bouton "+text$(2) return
click_EB1: message "clic EB1% bouton ellipse"+text$(2) return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 4 Déc 2016 - 17:46 | |
| Manque plus que le choix du curseur et le hint... ...et il sera complet. c' est bon, j' ai compris, je sors... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 4 Déc 2016 - 18:38 | |
| Ben, oui... c'était facile. Je n'ai pas changé de version, pour si peu. La fonction ManageSpecialButton a maintenant un nouveau code action sbaHint%. Dans ce cas, le 3ème paramètre est, soit adr$(hint$) pour définir un hint sur le bouton, soit 0 pour désactiver un hint. Et mantenant, lorsuqun curseur survole un bouton, non seulement l'image change, mais également le curseur qui se tgransforme en main. Voici le programme de démo qui montre cela: - la main apparaît systématiquement sur tous les boutons - le hint a été activé sur le bouton du bas de la barre d'outils verticale Et, juste pour montrer vraiment l'effet des coins arrondis, j'ai transformé le bouton du haut de la barre verticale en bouton rond ! - Code:
-
' test_SpecialButton.bas
label click_SC1, click_SC2, click_EB1
dim scoHorizontal% : scoHorizontal% = 0 dim scoVertical% : scoVertical% = 1
dim sbsNormal% : sbsNormal% = 0 dim sbsHover% : sbsHover% = 1 dim sbsHit% : sbsHit% = 2 dim sbsInactive% : sbsInactive% = 3
dim sbaHide% : sbaHide% = 0 dim sbaShow% : sbaShow% = 1 dim sbaInactive% : sbaInactive% = 2 dim sbaActive% : sbaActive% = 3 dim sbaImageIndex% : sbaImageIndex% = 4 dim sbaHint% : sbaHint% = 5
dim scaBorderwidth% : scaBorderwidth% = 0 dim scaColor% : scaColor% = 1 dim scaRestore% : scaRestore% = 2
dim scdaRight% : scdaRight% = 0 dim scdaSoRight% : scdaSoRight% = 1 dim scdaBottom% : scdaBottom% = 2 dim scdaSoBottom% : scdaSoBottom% = 3 dim scdaCoRight% : scdaCoRight% = 4 dim scdaCoBottom% : scdaCoBottom% = 5 dim scdaCdRight% : scdaCdRight% = 6 dim scdaCdBottom% : scdaCdBottom% = 7 dim scdaCodRight% : scdaCodRight% = 8 dim scdaCodBottom% : scdaCodBottom% = 9
dim res%, SC1%, SC2%, SB1%(5), SB2%(5), nom$, ilb$, IL%, EB1%, hint$ dim svg_SC1%, svg_SC2%
edit 1 : hide 1 : on_change 1,click_SC1 edit 2 : hide 2 : on_change 2,click_SC2 edit 3 : hide 3 : on_change 3,click_EB1
dll_on "KGF.dll" ilb$ = "KGF.ilb"
full_space 0
IL% = dll_call2("CreateImageList",16,16) res% = dll_call2("LoadImageList",IL%,adr(ilb$))
SC1% = dll_call6("CreateSpecialContainer",handle(0),16,16,scoHorizontal%,IL%,handle(1)) res% = dll_call4("LocateSpecialContainer",SC1%,200,10,scoHorizontal%)
SC2% = dll_call6("CreateSpecialContainer",handle(0),32,32,scoVertical%,IL%,handle(2)) res% = dll_call4("LocateSpecialContainer",SC2%,10,200,scoVertical%) ' scoVertical% nom$ = "hor1" SB1%(1) = dll_call5("CreateSpecialButton",SC1%,sbsNormal%,1,0,adr(nom$)) nom$ = "hor2" SB1%(2) = dll_call5("CreateSpecialButton",SC1%,sbsNormal%,4,0,adr(nom$)) nom$ = "hor3" SB1%(3) = dll_call5("CreateSpecialButton",SC1%,sbsNormal%,7,0,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB1%(2),sbaHide%,0) svg_SC1% = res% message "A la fin, on restaurera la situation de SC1 à l''indice "+str$(svg_SC1%)
nom$ = "ver1" SB2%(1) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,21,32,adr(nom$)) ' SB2%(1) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,21,8,adr(nom$)) nom$ = "ver2" SB2%(2) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,28,8,adr(nom$)) nom$ = "ver3" SB2%(3) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,31,8,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB2%(3),sbaInactive%,0) nom$ = "ver4" SB2%(4) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,124,8,adr(nom$)) hint$ = "Ceci est on test du HINT"+chr$(13)+chr$(10)+"du 4ème bouton." res% = dll_call3("ManageSpecialButton",SB2%(4),sbaHint%,adr(hint$))
res% = dll_call3("ManageSpecialContainer",SC2%,scaBorderwidth%,20) res% = dll_call3("ManageSpecialContainer",SC2%,scaColor%,255) svg_SC2% = res% message "A la fin, on restaurera la situation de SC2 à l''indice "+str$(svg_SC2%)
message "Maintenant, on attache (SC1,SC2,à droite)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaRight%) message "Maintenant, on attache (SC2,SC1,à droite)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaRight%) message "Maintenant, on attache (SC1,SC2,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoRight%) message "Maintenant, on attache (SC2,SC1,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoRight%)
message "Maintenant, on attache (SC1,SC2,en bas)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaBottom%) message "Maintenant, on attache (SC2,SC1,en bas)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaBottom%) message "Maintenant, on attache (SC1,SC2,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoBottom%) message "Maintenant, on attache (SC2,SC1,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdBottom%)
message "Maintenant, on attache (SC1,SC2,à droite en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodRight%) message "Maintenant, on attache (SC1,SC2,en bas en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodBottom%)
message "Maintenant, on inverse la dernière opération de SC2..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Encore..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Encore..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Maintenant, on revient à la configuration initiale de SC2..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,svg_SC2%) message "Maintenant, on revient à la configuration initiale de SC1..." res% = dll_call3("ManageSpecialContainer",SC1%,scaRestore%,svg_SC1%) message "Fini."
end
click_SC1: message "clic SC1% bouton "+text$(1) return click_SC2: message "clic SC2% bouton "+text$(2) return
click_EB1: message "clic EB1% bouton ellipse"+text$(2) return
Le fichier de documentation a été mis à jour. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Dim 4 Déc 2016 - 19:10 | |
| Salut Klaus ! Je viens de faire un petit essai en passant... Eh bien là c'est le top ! C'est même trop avec toutes ces options et ces possibilité... Bon, eh bien maintenant il ne me reste plus qu'a recréer les boutons dans les différents états pour l'intégrer à GPP. Et comme ils disent dans WOW : 'Du travail, encore du travail !!!' Un grand merci pour ton travail Klaus... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 4 Déc 2016 - 19:12 | |
| Je suis content que ça te plaise, et encore plus content que ça va servir à quelque chose ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 4 Déc 2016 - 19:13 | |
| Ici, l' urgent est déjà fait L' impossible est en cours Pour les miracles Prévoir un délai de.... 10 minutesBravo Klaus ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Dim 4 Déc 2016 - 20:03 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 5 Déc 2016 - 1:12 | |
| Merci, les amis ! Vos félicitations me vont droit au coeur ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 5 Déc 2016 - 1:18 | |
| Nouvelle version: KGF.dll V7.07 du 04/12/2016Nouveautés: - Nouvelle fonction: CreateTansparentSpecialContainerModules modifiés: KGF.dllLa doc est inchangée et reste à corriger. Les sources sont à jour. La doc spécifique de ces fonctions est à jour sur le WebDav, dossier DLLs Encore un grand coup: on peut maintenant faire une barre d'outils transparente ! La nouvelle fonction CreateTansparentSpecialContainer est identique à CreateSpecialContainer, sauf que le fond, quelque soit la couleur programmée pour ce fond, est transparent et ne pourra pas être modifié dans sa qualité de transparence. Usage possible: placer un bouton (éventuellement arrondi) dans une fenêtre, sans aspectvisuel gênant. Dans le progamme de démo suivant, la barre horizontale aura un fond transarent, la barre verticale un fond opaque rouge classique. La transparence mise à part, ces deux types de barre réagissent absolument de la même manière. - Code:
-
' test_SpecialButton.bas
label click_SC1, click_SC2, click_EB1
dim scoHorizontal% : scoHorizontal% = 0 dim scoVertical% : scoVertical% = 1
dim sbsNormal% : sbsNormal% = 0 dim sbsHover% : sbsHover% = 1 dim sbsHit% : sbsHit% = 2 dim sbsInactive% : sbsInactive% = 3
dim sbaHide% : sbaHide% = 0 dim sbaShow% : sbaShow% = 1 dim sbaInactive% : sbaInactive% = 2 dim sbaActive% : sbaActive% = 3 dim sbaImageIndex% : sbaImageIndex% = 4 dim sbaHint% : sbaHint% = 5
dim scaBorderwidth% : scaBorderwidth% = 0 dim scaColor% : scaColor% = 1 dim scaRestore% : scaRestore% = 2
dim scdaRight% : scdaRight% = 0 dim scdaSoRight% : scdaSoRight% = 1 dim scdaBottom% : scdaBottom% = 2 dim scdaSoBottom% : scdaSoBottom% = 3 dim scdaCoRight% : scdaCoRight% = 4 dim scdaCoBottom% : scdaCoBottom% = 5 dim scdaCdRight% : scdaCdRight% = 6 dim scdaCdBottom% : scdaCdBottom% = 7 dim scdaCodRight% : scdaCodRight% = 8 dim scdaCodBottom% : scdaCodBottom% = 9
dim res%, SC1%, SC2%, SB1%(5), SB2%(5), nom$, ilb$, IL%, EB1%, hint$ dim svg_SC1%, svg_SC2%
edit 1 : hide 1 : on_change 1,click_SC1 edit 2 : hide 2 : on_change 2,click_SC2 edit 3 : hide 3 : on_change 3,click_EB1
dll_on "KGF.dll" ilb$ = "KGF.ilb"
full_space 0
IL% = dll_call2("CreateImageList",16,16) res% = dll_call2("LoadImageList",IL%,adr(ilb$))
SC1% = dll_call6("CreateTransparentSpecialContainer",handle(0),16,16,scoHorizontal%,IL%,handle(1)) res% = dll_call4("LocateSpecialContainer",SC1%,200,10,scoHorizontal%)
SC2% = dll_call6("CreateSpecialContainer",handle(0),32,32,scoVertical%,IL%,handle(2)) res% = dll_call4("LocateSpecialContainer",SC2%,10,200,scoVertical%) ' scoVertical% nom$ = "hor1" SB1%(1) = dll_call5("CreateSpecialButton",SC1%,sbsNormal%,1,0,adr(nom$)) nom$ = "hor2" SB1%(2) = dll_call5("CreateSpecialButton",SC1%,sbsNormal%,4,0,adr(nom$)) nom$ = "hor3" SB1%(3) = dll_call5("CreateSpecialButton",SC1%,sbsNormal%,7,0,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB1%(2),sbaHide%,0) svg_SC1% = res% message "A la fin, on restaurera la situation de SC1 à l''indice "+str$(svg_SC1%)
nom$ = "ver1" SB2%(1) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,21,32,adr(nom$)) nom$ = "ver2" SB2%(2) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,28,8,adr(nom$)) nom$ = "ver3" SB2%(3) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,31,8,adr(nom$)) res% = dll_call3("ManageSpecialButton",SB2%(3),sbaInactive%,0) nom$ = "ver4" SB2%(4) = dll_call5("CreateSpecialButton",SC2%,sbsNormal%,124,8,adr(nom$)) hint$ = "Ceci est on test du HINT"+chr$(13)+chr$(10)+"du 4ème bouton." res% = dll_call3("ManageSpecialButton",SB2%(4),sbaHint%,adr(hint$))
res% = dll_call3("ManageSpecialContainer",SC2%,scaBorderwidth%,20) res% = dll_call3("ManageSpecialContainer",SC2%,scaColor%,255) svg_SC2% = res% message "A la fin, on restaurera la situation de SC2 à l''indice "+str$(svg_SC2%)
message "Maintenant, on attache (SC1,SC2,à droite)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaRight%) message "Maintenant, on attache (SC2,SC1,à droite)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaRight%) message "Maintenant, on attache (SC1,SC2,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoRight%) message "Maintenant, on attache (SC2,SC1,à droite si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoRight%)
message "Maintenant, on attache (SC1,SC2,en bas)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaBottom%) message "Maintenant, on attache (SC2,SC1,en bas)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaBottom%) message "Maintenant, on attache (SC1,SC2,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaSoBottom%) message "Maintenant, on attache (SC2,SC1,en bas si même orientation - donc sans action)" res% = dll_call3("DockSpecialContainer",SC2%,SC1%,scdaSoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant l'orientation)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCoBottom%)
' message "Maintenant, on attache (SC1,SC2,à droite en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdRight%) ' message "Maintenant, on attache (SC1,SC2,en bas en convertissant les dimensions)" ' res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCdBottom%)
message "Maintenant, on attache (SC1,SC2,à droite en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodRight%) message "Maintenant, on attache (SC1,SC2,en bas en convertissant l''orientation et les dimensions)" res% = dll_call3("DockSpecialContainer",SC1%,SC2%,scdaCodBottom%)
message "Maintenant, on inverse la dernière opération de SC2..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Encore..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Encore..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,0) message "Maintenant, on revient à la configuration initiale de SC2..." res% = dll_call3("ManageSpecialContainer",SC2%,scaRestore%,svg_SC2%) message "Maintenant, on revient à la configuration initiale de SC1..." res% = dll_call3("ManageSpecialContainer",SC1%,scaRestore%,svg_SC1%) message "Fini."
end
click_SC1: message "clic SC1% bouton "+text$(1) return click_SC2: message "clic SC2% bouton "+text$(2) return
click_EB1: message "clic EB1% bouton ellipse"+text$(2) return
EDITMomentanément, je n'ai pas accès à mon WebDav. Prenez la DLL sur un de mes sites Web.EDIT bisLe WebDav est à nouveau accessible et j'ai tout mis à jour. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 5 Déc 2016 - 13:09 | |
| Nouvelle version: KGF.dll V7.08 du 04/12/2016
Nouveautés: - Nouvelle fonction: SearchStringInTextFile
Modules modifiés: KGF.dll
La doc est inchangée et reste à corriger. Les sources sont à jour.
Cette fonction recherche toutes les occurrences d'une chaîne de caractères dans un fichier texte. Pour chaque occurrence, elle place une ligne dans le presse-papier selon le format suivant: n...n_ligne "n..n" est le numéro de ligne "_" est un espace "ligne" est la ligne trouvée
La valeur retournée de cette fonction est le nombre de lignes trouvées en cas de réussite, ou -1 en cas d'anomalie (fichier non trouvée, absence de critère, ...).
Cette fonction est ultra-rapide ! | |
| | | Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Demande d'une nouvelle fonction de KGF. Lun 5 Déc 2016 - 14:11 | |
| Bonjour.
Un grand merci Klaus, cette nouvelle commande fonctionne à merveille.
Pourrais-tu cependant ajouter les deux paramètres supplémentaires suivants:
1: choix d'incorporer les numéros de lignes ou non. 2: permettre le choix d'indiquer à la fonction que la chaîne à rechercher se trouve au début de chaque ligne, ou non.
Merci d'avance. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 5 Déc 2016 - 14:30 | |
| C'est fait. Regarde la démo suivante: - Code:
-
' test_SearchStringInTextFile.bas
dim res%, fic$, crit$
dll_on "KGF.dll" memo 1 : full_space 1 : bar_both 1
fic$ = "dico_français_espagnol.txt" crit$ = "travail"
' res% = dll_call4("SearchStringInTextFile",adr(fic$),adr(crit$),LineNumbers%, AtStartOnly%) ' LineNumbers: 0=pas de numéros de ligne <>0=numéros de ligne ' AtStartOnly: 0=dans toute la ligne <>0=au début de la ligne uniquement res% = dll_call4("SearchStringInTextFile",adr(fic$),adr(crit$),0,1) clipboard_paste 1 message str$(res%)+" lignes trouvées"
end
Tu peux jouer avec les deux derniers paramètres 0/1 pour chacun... | |
| | | Contenu sponsorisé
| Sujet: Re: KGF_dll - nouvelles versions | |
| |
| | | | KGF_dll - nouvelles versions | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |