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 | |
|
+13The Gamer Nardo26 silverman Minibug Pedro mindstorm pascal10000 Jicehel papydall Jean Claude JL35 Yannick Klaus 17 participants | |
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 5 Déc 2014 - 23:35 | |
| Place une ligne - Code:
-
message path$ juste avant le bloc de lignes concernées, histoire de voir... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 7 Déc 2014 - 12:59 | |
| Ca y est, tout fonctionne ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 10 Déc 2014 - 12:24 | |
| Nouvelle version: KGF.dll V3.97 du 10/12/2014
Nouveautés: - sécurisation des fonction StringList
Modules modifiés: KGF.dll
Les sources sont à jour.
Auparavant, il était possible de donner un numéro de StringList en-dehors de la fourchette autorisée entre 1 et 20. Maintenant, toutes les fonctions StrngList retournent -1 (erreur) si cela se produit. | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: exe telechargement a Klaus Jeu 11 Déc 2014 - 9:19 | |
| bjr a Klaus et aux autre panoramicien
A klaus
Y a t'il la possibilité de télécharger une vidéo a partir youtube avec l'aide de la commande "DownloadFile" de KGF?
Merci de ta réponse et bonne jounée | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 11 Déc 2014 - 9:50 | |
| Bien sûr... si tu connais l'URL. | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: KGF_dll - nouvelles versions Jeu 11 Déc 2014 - 11:29 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 13 Déc 2014 - 15:22 | |
| Nouvelle version: KGF.dll V3.98 du 13/12/2014Nouveautés: - nouvelle fonction WindowCreateRegionFromBMPModules modifiés: KGF.dll KGF.chmLes sources et la doc sont à jour. Cette fonction permet, avec l'aide de la fonction WindowRegionAsWindow déjà existante, de créer des objets de n'importe quelle forme. On peut l'appliquer à des fenêtres (objets FORM), mais généralement à n'importe quel objet ayant un "handle": bouton, panel, memo, ... Le programme de démo ci-après applique ce principe deux panels exactement superposés. Dans desux picture, des bitmaps sont déssinés. Le picture de gauche représente un anneau, et le picture de droite un cercle tenant exactement dans l'évidement de l'anneau. Lors d'un clic sur le bouton "Go", ces bitmaps sont appliqués aux panels de sorte que le panel numéro 2 recevra l'anneau et le panel 12 le cercle. Etant superposés, ces deux panels agissent en fait comme des boutons encastrés. On peur en effet cliquer sur le bouton bleu (panel 12) qui représente l'intérieur qu qu'on peut cliquer à travers le panel 2 qui est l'extérieur. - Code:
-
' test_WindowsCreateRegionFromBMP.bas
label go, exter, inter
dim res%, rgn1%, rgn2%, bmp$, transp%
width 0,700
button 1 : top 1,10 : left 1,200 : caption 1,"Go" : on_click 1,go
panel 12 : top 12,0 : left 12,0 : caption 12,"Intérieur" : on_click 12,inter width 12,100 : height 12,40 : color 12,0,0,255 panel 2 : top 2,0 : left 2,0 : caption 2,"Extérieur" : on_click 2,exter width 2,100 : height 2,40 : color 2,255,0,0
picture 3 : top 3,100 : left 3,10 : width 3,300 : height 3,300
2d_target_is 3 2d_circle 150,150,120 2d_circle 150,150,80 2d_flood 150,65,0,0,0
picture 13 : top 13,100 : left 13,310 : width 13,300 : height 13,300
2d_target_is 13 2d_circle 150,150,80 2d_flood 150,155,0,0,0
dll_on "KGF.dll"
end
go: transp% = (255*256+255)*256+255 file_save 3,"MonMasque.bmp" bmp$ = "MonMasque.bmp" res% = dll_call5("WindowCreateRegionFromBMP",adr(bmp$),adr(rgn1%),transp%,width(2),height(2)) res% = DLL_call2("WindowRegionAsWindow",handle(2),adr(rgn1%)) file_save 13,"MonMasque.bmp" bmp$ = "MonMasque.bmp" res% = dll_call5("WindowCreateRegionFromBMP",adr(bmp$),adr(rgn2%),transp%,width(2),height(2)) res% = DLL_call2("WindowRegionAsWindow",handle(12),adr(rgn2%)) file_delete bmp$ return exter: color 2,255,127,127 wait 100 color 2,255,0,0 message "clic sur Extérieur" return
inter: color 12,127,127,255 wait 100 color 12,0,0,255 message "clic sur Intérieur" return
Mais vous pouvez dessiner une bitmap quelconque, avec PAINT ou n'importe quel logiciel de dessin, même des bitmaps contenant des morceaux non contigus comme une série de bulles etc. Tout ce qui est de la couleur de transparence passée en paramètre, sera exclu du dessin de l'objet auquel on applique la région résultante. Vous pouvez dessiner des flèches de la forme voulue, des mickeys, ... il n'y a que votre imagination pour limiter ce qu'une bitmap peut représenter... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 13 Déc 2014 - 17:15 | |
| Bravo Klaus, très interssante cette fonction. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Sam 13 Déc 2014 - 17:19 | |
| Génial, ça promet des interfaces superbes Il faudra que l'on se fasse des banques d'objets pour se faciliter le développement. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 13 Déc 2014 - 22:19 | |
| Voici un petit programme qui applique ce changement de forme à la FORM 0 et en même temps à un mémo (objet 4) dans la form 0. Les deux auront cette forme de couronne. Pour lancer la transformation, cliquer sur "Go". Pour sortir du programme, cliquer sur "Stop". Pour déplacer la fenêtre, maintenez la touche SHIFT enfoncée et bougez la souris. Pour fixer la position de la fenêtre, relâchez la touche SHIFT. Pour voir la réaction du mémo, cliquez dans la couronne blanche et tapez une touche. Certes, cette image de "couronne" n'a pas de réel intérêt autre que pour montrer que c'est possible? Prenez n'importe quel fichier BMP et choisissez une couleur de transparence (un smiley, une icône quelconque, ...) et observez le résultat. - Code:
-
' test_WindowsCreateRegionFromBMP.bas
label go, sortie, down, up, tick, click0 label down4, up4
dim res%, rgn%, bmp$, transp%, key%, move%, dx%, dy%, x0%, y0%, x%, y% dim hnd0%, hnd1%
width 0,700 : on_key_down 0,down : on_key_up 0,up : color 0,255,0,0 on_click 0,click0
button 1 : top 1,10 : left 1,200 : caption 1,"Go" : on_click 1,go button 2 : top 2,40 : left 2,200 : caption 2,"Stop" : on_click 2,sortie
picture 3 : top 3,100 : left 3,10 : width 3,300 : height 3,300
memo 4 : top 4,10 : left 4,300 : bar_both 4 on_key_down 4,down4 : on_key_up 4,up4 item_add 4,"abcdefghijklmnopqrstuvwxyz" item_add 4,"123456789012345678901234567890"
2d_target_is 3 2d_circle 150,150,120 2d_circle 150,150,80 2d_flood 150,65,0,0,0
dll_on "KGF.dll"
timer 11 : timer_off 11 : timer_interval 11,5 : on_timer 11,tick
end
go: hnd0% = handle_canvas(0) transp% = (255*256+255)*256+255 bmp$ = "MonMasque.bmp" file_save 3,"MonMasque.bmp" res% = dll_call5("WindowCreateRegionFromBMP",adr(bmp$),adr(rgn%),transp%,width(0),height(0)) res% = DLL_call2("WindowRegionAsWindow",handle(0),adr(rgn%)) rgn% = 0 res% = dll_call5("WindowCreateRegionFromBMP",adr(bmp$),adr(rgn%),transp%,width(4),height(4)) res% = DLL_call2("WindowRegionAsWindow",handle(4),adr(rgn%)) file_delete bmp$ set_focus 0 return sortie: terminate down: key% = key_down_code select key% case 16 if dx%=0 res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%)) dx% = x% - left(0) dy% = y% - top(0) caption 0,str$(dx%)+","+str$(dy%) timer_on 11 end_if case 39 left 0, left(0) + 1 end_select return up: key% = key_up_code if key%=16 dx% = 0 timer_off 11 end_if return tick: res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%)) left 0, x% - dx% top 0, y% - dy% return click0: message "clic sur form 0" return down4: item_add 4,"Memo down "+str$(key_down_code) set_focus 0 return
up4: item_add 4,"Memo up "+str$(key_up_code) set_focus 0 return
Voici l'image du programme avant application du changement de forme: Et voici ce que ça donne après un clic sur "Go": Sympa, non ? | |
| | | mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: KGF_dll - nouvelles versions Sam 13 Déc 2014 - 23:24 | |
| merci Klaus je vais voir si je suis capable de m'en servir ......... des que j'ai du temps ps j'ai une erreur ligne 39 il me semble qu il me manque l'image! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 14 Déc 2014 - 1:07 | |
| Euh... l'image est produite par le programme lui-même... regarde les lignes 22 à 25 pour le dessin et les lignes 37 et 38 pour la création du fichier... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 14 Déc 2014 - 1:25 | |
| Regarde le source légèrement modifié qui suit. J'ai inséré, après le dessin, deux lignes qui permettent de charger une BMP quelconque. Voici le code ainsi modifié: - Code:
-
' test_WindowsCreateRegionFromBMP.bas
label go, sortie, down, up, tick, click0 label down4, up4
dim res%, rgn%, bmp$, transp%, key%, move%, dx%, dy%, x0%, y0%, x%, y% dim hnd0%, hnd1%
width 0,700 : on_key_down 0,down : on_key_up 0,up : color 0,255,0,0 on_click 0,click0
button 1 : top 1,00 : left 1,200 : caption 1,"Go" : on_click 1,go button 2 : top 2,20 : left 2,200 : caption 2,"Stop" : on_click 2,sortie
picture 3 : top 3,100 : left 3,10 : width 3,300 : height 3,300
memo 4 : top 4,10 : left 4,300 : bar_both 4 on_key_down 4,down4 : on_key_up 4,up4 item_add 4,"abcdefghijklmnopqrstuvwxyz" item_add 4,"123456789012345678901234567890"
2d_target_is 3 ' dessiner la forme ' 2d_circle 150,150,12 ' 2d_circle 150,150,80 ' 2d_flood 150,65,0,0,0
' ou charger un fichier BMP stretch_on 3 file_load 3,"crane.bmp"
dll_on "KGF.dll"
timer 11 : timer_off 11 : timer_interval 11,5 : on_timer 11,tick
end
go: hide 3 hnd0% = handle_canvas(0) transp% = (255*256+255)*256+255 bmp$ = "MonMasque.bmp" file_save 3,"MonMasque.bmp" res% = dll_call5("WindowCreateRegionFromBMP",adr(bmp$),adr(rgn%),transp%,width(0),height(0)) res% = DLL_call2("WindowRegionAsWindow",handle(0),adr(rgn%)) rgn% = 0 res% = dll_call5("WindowCreateRegionFromBMP",adr(bmp$),adr(rgn%),transp%,width(4),height(4)) res% = DLL_call2("WindowRegionAsWindow",handle(4),adr(rgn%)) file_delete bmp$ res% = DLL_call2("WindowTranparency",handle(0),100) set_focus 0 return sortie: terminate down: key% = key_down_code select key% case 16 if dx%=0 res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%)) dx% = x% - left(0) dy% = y% - top(0) caption 0,str$(dx%)+","+str$(dy%) timer_on 11 end_if case 39 left 0, left(0) + 1 end_select return up: key% = key_up_code if key%=16 dx% = 0 timer_off 11 end_if return tick: res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%)) left 0, x% - dx% top 0, y% - dy% return click0: ' message "clic sur form 0" return down4: item_add 4,"Memo down "+str$(key_down_code) set_focus 0 return
up4: item_add 4,"Memo up "+str$(key_up_code) set_focus 0 return
J'ai choisi crane.bmp qiue voici (fichier BMP de 100x100 pixels): Et j'ai mis un taux de transparence sur le fenêtre, dans le traitement du bouton "Go". Voici ce que ça donne en le lançant dans l'éditeur: Et lorsque je minimise la fenêtre de l'éditeur Panoramic: Ca fait peur, non ? | |
| | | mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: KGF_dll - nouvelles versions Dim 14 Déc 2014 - 11:56 | |
| Merci Klaus mais rien de cette sorte ne peut faire peur a JOLLY ROGER je viens de penser a une chose la version de la DLL que j utilise est la nouvelle version du 03 décembre 2014 se peut il qu'elle soit périmée? et oui déjà | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 14 Déc 2014 - 12:09 | |
| Eh oui - c'est la KGF.dll V3.98 du 13/12/2014 actuellement:
Nouveautés: - nouvelle fonction WindowCreateRegionFromBMP
Ca date d'hier, à 15h22. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 23 Déc 2014 - 2:28 | |
| Nouvelle version: KGF.dll V3.99 du 22/12/2014
Nouveautés: - nouvelle fonction GetFormClientMetrics
Modules modifiés: KGF.dll KGF.chm
Les sources et la doc sont à jour.
Cette fonction permet d'obtenir les coordonnées absolues de la zone client d'une fenêtre (ou d'un objet) ainsi que largeur et hauteur de cette zone client. C'est une variation de la fonction GetFormMetrics déjà existante, qui retourne la position et les dimensions extérieures de la fenêtre. La nouvelle fonction est très utile pour dimensionner correctement les affichages des objets, dans se soucier de l'épaisseur des bordures, en fonction du mode de bordure choisi. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 28 Déc 2014 - 12:25 | |
| Nouvelle version: KGF.dll V4.00 du 28/12/2014
Nouveautés: - nouvelle fonction ExecuteProgramAndWait
Modules modifiés: KGF.dll KGF.chm
Les sources et la doc sont à jour.
C'est la copie exacte de la fonction existante ExecuteProgram, mais cette nouvelle fonction de retourne que lorsque le programme lancé est terminé, quelque soit la cause de sa terminaison. | |
| | | 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 Jan 2015 - 2:05 | |
| Nouvelle version: KGF.dll V4.01 du 03/01/2015Nouveautés: - nouvelle fonction GetObjectTreeModules modifiés: KGF.dll KGF.chmLes sources et la doc sont à jour. Cette fonction exploite la nouvelle fonction OBJECT_INTERNAL(N) de Panoramic V0.29i4 du 2/1/2015. Il faut donc impérativement avoir cette version de Panoramic pour utiliser cette fonction. Bien sur, ceci n'est pas requis pour les autres fonctions de KGF.dll. La fonction GetObjectTree est appelée de la manière suivante: - Code:
-
res% = dll_call3("GetObjectTree",object_number(obj%),object_number(lst%),0) Le premier paramètre détermine l'objet dont on veut récupérer l'arborescence de objets contenus. obj% peut être le numéro d'objet d'une form, d'un container, d'un container_option, d'un panel, d'un main_menu ou d'un sub_menu. Pour tous les autres objets, cette fonction ne retourne rien. Le deuxième paramètre indique un objet LIST qui recevra le résultat, sous forme d'une ligne par objets. Chaque ligne contient une indentation en fonction du niveau de profondeur, et le type de l'objet. Ainsi, la liste donne une idée précise de la structure de l'objet analysé. Voici un programme de démo: - Code:
-
dim n%,m%,res%
dll_on "KGF.dll"
list 87 : left 87,420 : top 87,10 : width 87,150 : height 87,400
container 6 : left 6,30 : width 6,300 : height 6,400 : caption 6,"Container 6" item_add 87,"6->"+str$(n%) button 7 : parent 7,6 : top 7,20 : left 7,20 edit 8 : parent 8,6 : top 8,50 : left 8,20 container_option 20 : parent 20,6 : top 20,80 : left 20,30 option 21 : parent 21,20 : top 21,20 : left 21,20 option 22 : parent 22,20 : top 22,50 : left 22,20 picture 30 : parent 30,6 : top 30,200 : left 30,20 alpha 31 : parent 31,6 : top 31,250 : left 31,20 : caption 31,"Container" container 40 : parent 40,6 : top 40,280 : left 40,20 : caption 40,"Container 46" dlist 51 : ' <------ ne sera pas dans l'arborescence du container 6 ! open_dialog 52 : ' <------ ne sera pas dans l'arborescence du container 6 ! check 53 : parent 53,40 : top 53,20 : left 53,20 check 54 : parent 54,40 : top 54,50 : left 54,20
clear 87 n% = object_internal(6) m% = object_internal(87) res% = dll_call3("GetObjectTree",n%,m%,0) end
Et voici l'affichage après exécution: D'autres fonctions de ce genre suivront, ainsi que la refonte des fonctions déjà existantes qui retournent des informations dans un mémo, une list ou un edit. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 7 Jan 2015 - 11:38 | |
| Nouvelle version: KGF.dll V4.03 du 07/01/2015Nouveautés: - nouvelles fonctions IdentifyButtonArrayButton, CreateButtonArray, DeleteButtonArray, SetButtonArrayGeometryModules modifiés: KGF.dll KGF.chm
Les sources et la doc sont à jour. Ces fonctions permettent de gérer un nouveau pseudo-objet ButtonArray. Il s'agit d'un groupe de boutons organisé en matrice, en précisant le nombre de lignes et colonnes. Ces boutons sont automatiquement créés, et une technique particulière permet de récupérer et identifier un clic sur un des boutons. On peut créer autant d'objets ButtonArray que nécessaire. Ce n'est pas limité ! Voici un exemple d'utilisation. Cliquez sur les 4 boutons "Créer ..." et amirez. Cliquez sur n'importe lequel des boutons d'un des ButtonArray... Puis, utilisez les boutons "Supprimer..." pour les faire disparaître et "Créer..." pour les recréer... - Code:
-
' test ButtonArray.bas
label clic, cre1, cre2, cre3, cre4, del1, del2, del3, del4
dim res%,xy%,nlnc%,lght%,grpdxy%,s$, i%,j% dim grp%,l%,c% dim BA1%, BA2%, BA3%, BA4%, nBA%
dll_on "KGF.dll"
button 1 : top 1,150 : left 1,300 : caption 1,"Créer 1" : on_click 1,cre1 button 2 : top 2,180 : left 2,300 : caption 2,"Créer 2" : on_click 2,cre2 button 3 : top 3,210 : left 3,300 : caption 3,"Créer 3" : on_click 3,cre3 button 4 : top 4,240 : left 4,300 : caption 4,"Créer 4" : on_click 4,cre4 button 11 : top 11,150 : left 11,400 : caption 11,"Supprimer 1" : on_click 11,del1 button 12 : top 12,180 : left 12,400 : caption 12,"Supprimer 2" : on_click 12,del2 button 13 : top 13,210 : left 13,400 : caption 13,"Supprimer 3" : on_click 13,del3 button 14 : top 14,240 : left 14,400 : caption 14,"Supprimer 4" : on_click 14,del4
on_click 0,clic
end
clic: res% = dll_call0("IdentifyButtonArrayButton") : ' récupérer l'ID du bouton if res%=0 then return : ' abandon si ce n'est pas un de nos boutons s$ = hex$(res%) s$ = left$(s$,len(s$)-4) nBA% = val(s$) l% = dll_call2("bin_SHR",res%,8) l% = bin_AND(l%,255) c% = bin_AND(res%,255) message "clic sur BA groupe="+hex$(nBA%)+" ligne="+str$(l%)+" colonne="+str$(c%) return cre1: if BA1%<>0 then return xy% = dll_call2("bin_SHL",30,16) + 40 : ' left 30 top 40 nlnc% = dll_call2("bin_SHL",3,16) + 9 : ' 3 lignes 9 colonnes lght% = dll_call2("bin_SHL",50,16) + 20 : ' width 50 height 20 grpdxy% = dll_call2("bin_SHL",1,16) + 5 : ' groupe 1 écart 5 for i%=1 to 3 for j%=1 to 9 s$ = s$ + str$(i%)+"/"+str$(j%)+"," next j% next i% BA1% = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) return cre2: if BA2%<>0 then return xy% = dll_call2("bin_SHL",20,16) + 150 : ' left 20 top 150 nlnc% = dll_call2("bin_SHL",4,16) + 4 : ' 4 lignes 4 colonnes lght% = dll_call2("bin_SHL",50,16) + 20 : ' width 50 height 20 grpdxy% = dll_call2("bin_SHL",2,16) + 0 : ' groupe 2 écart 0 for i%=1 to 3 for j%=1 to 9 s$ = s$ + str$(i%)+"/"+str$(j%)+"," next j% next i% BA2% = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) return cre3: if BA3%<>0 then return xy% = dll_call2("bin_SHL",20,16) + 300 : ' left 20 top 300 nlnc% = dll_call2("bin_SHL",6,16) + 1 : ' 6 lignes 1 colonnes lght% = dll_call2("bin_SHL",70,16) + 15 : ' width 70 height 15 grpdxy% = dll_call2("bin_SHL",3,16) + 0 : ' groupe 3 écart 0 for i%=1 to 3 for j%=1 to 9 s$ = s$ + str$(i%)+"/"+str$(j%)+"," next j% next i% BA3% = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) return
cre4: if BA4%<>0 then return xy% = dll_call2("bin_SHL",150,16) + 300 : ' left 150 top 300 nlnc% = dll_call2("bin_SHL",1,16) + 6 : ' 1 lignes 6 colonnes lght% = dll_call2("bin_SHL",30,16) + 30 : ' width 30 height 30 grpdxy% = dll_call2("bin_SHL",4,16) + 0 : ' groupe 4 écart 0 for i%=1 to 3 for j%=1 to 9 s$ = s$ + str$(i%)+"/"+str$(j%)+"," next j% next i% BA4% = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) return
del1: res% = dll_call1("DeleteButtonArray",BA1%) BA1% = 0 return del2: res% = dll_call1("DeleteButtonArray",BA2%) BA2% = 0 return
del3: res% = dll_call1("DeleteButtonArray",BA3%) BA3% = 0 return
del4: res% = dll_call1("DeleteButtonArray",BA4%) BA4% = 0 return
Ca ouvre des perspectives, non ? Barres de commande horizontales ou verticales, claviers virtuels,...
Dernière édition par Klaus le Mer 7 Jan 2015 - 19:46, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 7 Jan 2015 - 11:59 | |
| Chargée, testée, approuvée !!! C' est un bon complément à la "tool_bar". Bravo Klaus. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Mer 7 Jan 2015 - 12:15 | |
| Je me demande quand même si ça ne vaudrait pas le coup de faire une version explosée par thématique de KGF avec une version allégée de la doc pour cette DLL ? Comme ça si les gens n'utilisent qu'une partie des fonctionnalités, ils utilisent la DLL "légère" et s'ils utilisent plusieurs fonctionnalités, soient ils jonglent avec les ouvertures / fermetures / soient ils utilisent KGF.DLL Après reste à choisir judicieusement les thématiques pour ne pas faire trop de DLL, mais simplifier quand même les documentations. A toi de voir Klaus si c'est une bonne idée et si tu veux te lancer dans ce boulot supplémentaire. L'idée vient aussi par anticipation s'il y aplusieurs concepteurs de DLL. Ce serait plus simple pour trouver le thématiques déjà couverte (même si la doc est bien faite sur ce sujet et est déjà regroupée par thème). Voilà, c'était mon idée de boulot en plus du jour, désolé...
PS : et merci pour cette nouvelle possibilité qui en effet permet bien des choses (même pourquoi pas la création de damiers... Il suffit ensuite de pouvoir choisir la couleur du bouton dans la création du tableau.) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 7 Jan 2015 - 13:58 | |
| C'est complexe, Jicehel. Initialement, j'avais fait plusieurs DLLs indépendantes. Cela a dérangé un certain nombre d'utilisateurs. Et ça devenait très lourd à maintenir. J'ai donc tout réuni en une seule DLL, et techniquement, c'est bien plus simple ainsi. Et que dire de la doc - maintenir 5, 7 ou 10 fichiers d'aide séparément - quelle galère ! As-tu bien regardé la structuration du fichier KGF.dll actuel ? Il y a des mots-clé, il y a même in indexe alphabétique des fonctions, et le tout en 2 langues... Non. Je n'ai pas envie de redécouper cela en plusieurs morceaux. J'espère que tu comprends mon point de vue.
En ce qui concerne l'évolution du nouveau ButtonArray, certes, on n'est est qu'au début. On verra bien les besoins et les suggestions qui se feront jour. Plusieurs pistes: changer dynamiquement les libellés, cacher/réafficher certains boutons ou le ButtonArray entier, utiliser d'autres objets que des boutons pour constituer la matrice (des images, par exemple...) etc. On verra bien. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Mer 7 Jan 2015 - 14:13 | |
| OK, merci pour ta réponse Klaus. En fait cette réflexion venait aussi du fait qu'en règle générale, quand un thème est finalisé, il n'évolue plus pendant de nombreux mois. Mais bon, il est indiscutable que ça fait encore du boulot en plus et mieux vaut que tu continues à nous gater avec pleins de nouveautés dans KGF ^^ De toute façon, si on sait faire des DLL comme tu partages les sources, rien ne nous empèche d'en faire une qui soit propre à un besoin particulier si besoin et en gardant la même syntaxe que dans KGF, on peut réutiliser directement la doc ^^ Bon, je me tais et j'arrète de polluer ce sujet | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 7 Jan 2015 - 15:09 | |
| Un petit exemple de ce que l'on peut faire avec ButtonArray: - Code:
-
' clavier_AZERTY.bas
label clic
dim res%, s$, l%, c% dim xy%, nlnc%, lght%, grpdxy%
dim BA%(30), nBA%
dll_on "KGF.dll" on_click 0,clic : width 0,700
ligne_123() ligne_AZE() ligne_QSD() ligne_WXC()
ligne_num1() ligne_num2() ligne_num3() ligne_num4() ligne_num5() ligne_num6()
end
sub ligne_123() xy% = dll_call2("bin_SHL",12,16) + 50 : ' left 12 top 50 nlnc% = dll_call2("bin_SHL",1,16) + 14 : ' 1 lignes 14 colonnes lght% = dll_call2("bin_SHL",30,16) + 30 : ' width 30 height 30 grpdxy% = dll_call2("bin_SHL",1,16) + 0 : ' groupe 1 écart 0 s$ = "²,&,é,'',',(,-,è,_,ç,à,),=,Del" BA%(1) = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) end_sub
sub ligne_AZE() xy% = dll_call2("bin_SHL",20,16) + 80 : ' left 20 top 80 nlnc% = dll_call2("bin_SHL",1,16) + 14 : ' 1 lignes 14 colonnes lght% = dll_call2("bin_SHL",30,16) + 30 : ' width 30 height 30 grpdxy% = dll_call2("bin_SHL",2,16) + 0 : ' groupe 2 écart 0 s$ = "Tab,A,Z,E,R,T,Y,U,I,O,P,^,$,Rtn" BA%(2) = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) end_sub
sub ligne_QSD() xy% = dll_call2("bin_SHL",28,16) + 110 : ' left 28 top 110 nlnc% = dll_call2("bin_SHL",1,16) + 14 : ' 1 lignes 14 colonnes lght% = dll_call2("bin_SHL",30,16) + 30 : ' width 30 height 30 grpdxy% = dll_call2("bin_SHL",3,16) + 0 : ' groupe 3 écart 0 s$ = "Ver.,Q,S,D,F,G,H,J,K,L,M,ù,*,Rtn" BA%(3) = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) end_sub
sub ligne_WXC() xy% = dll_call2("bin_SHL",36,16) + 140 : ' left 36 top 140 nlnc% = dll_call2("bin_SHL",1,16) + 12 : ' 1 lignes 12 colonnes lght% = dll_call2("bin_SHL",30,16) + 30 : ' width 30 height 30 grpdxy% = dll_call2("bin_SHL",4,16) + 0 : ' groupe 4 écart 0 s$ = "Maj,W,X,C,V,B,N,x,;,:,!,Maj" BA%(4) = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) end_sub
sub ligne_num1() xy% = dll_call2("bin_SHL",500,16) + 20 : ' left 500 top 20 nlnc% = dll_call2("bin_SHL",1,16) + 4 : ' 1 lignes 4 colonnes lght% = dll_call2("bin_SHL",30,16) + 30 : ' width 30 height 30 grpdxy% = dll_call2("bin_SHL",5,16) + 0 : ' groupe 5 écart 0 s$ = "Déb.,Fin,Psuiv,Ppréc" BA%(11) = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) end_sub
sub ligne_num2() xy% = dll_call2("bin_SHL",500,16) + 50 : ' left 500 top 50 nlnc% = dll_call2("bin_SHL",1,16) + 4 : ' 1 lignes 4 colonnes lght% = dll_call2("bin_SHL",30,16) + 30 : ' width 30 height 30 grpdxy% = dll_call2("bin_SHL",6,16) + 0 : ' groupe 6 écart 0 s$ = "Num.,/,*,-" BA%(12) = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) end_sub
sub ligne_num3() xy% = dll_call2("bin_SHL",500,16) + 80 : ' left 500 top 80 nlnc% = dll_call2("bin_SHL",1,16) + 4 : ' 1 lignes 4 colonnes lght% = dll_call2("bin_SHL",30,16) + 30 : ' width 30 height 30 grpdxy% = dll_call2("bin_SHL",7,16) + 0 : ' groupe 7 écart 0 s$ = "7,8,9,+" BA%(13) = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) end_sub
sub ligne_num4() xy% = dll_call2("bin_SHL",500,16) + 110 : ' left 500 top 110 nlnc% = dll_call2("bin_SHL",1,16) + 4 : ' 1 lignes 4 colonnes lght% = dll_call2("bin_SHL",30,16) + 30 : ' width 30 height 30 grpdxy% = dll_call2("bin_SHL",8,16) + 0 : ' groupe 8 écart 0 s$ = "4,5,6,+" BA%(14) = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) end_sub
sub ligne_num5() xy% = dll_call2("bin_SHL",500,16) + 140 : ' left 500 top 140 nlnc% = dll_call2("bin_SHL",1,16) + 4 : ' 1 lignes 4 colonnes lght% = dll_call2("bin_SHL",30,16) + 30 : ' width 30 height 30 grpdxy% = dll_call2("bin_SHL",9,16) + 0 : ' groupe 9 écart 0 s$ = "1,2,3,Rtn" BA%(15) = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) end_sub
sub ligne_num6() xy% = dll_call2("bin_SHL",500,16) + 170 : ' left 500 top 170 nlnc% = dll_call2("bin_SHL",1,16) + 4 : ' 1 lignes 4 colonnes lght% = dll_call2("bin_SHL",30,16) + 30 : ' width 30 height 30 grpdxy% = dll_call2("bin_SHL",10,16) + 0 : ' groupe 10 écart 0 s$ = "0,0,.,Rtn" BA%(16) = dll_call6("CreateButtonArray",handle(0),xy%,nlnc%,lght%,grpdxy%,adr(s$)) end_sub
clic: res% = dll_call0("IdentifyButtonArrayButton") : ' récupérer l'ID du bouton if res%=0 then return : ' abandon si ce n'est pas un de nos boutons s$ = hex$(res%) s$ = left$(s$,len(s$)-4) nBA% = hex(s$) l% = dll_call2("bin_SHR",res%,8) l% = bin_AND(l%,255) c% = bin_AND(res%,255) message "clic sur BA groupe="+str$(nBA%)+" ligne="+str$(l%)+" colonne="+str$(c%) return
Dernière édition par Klaus le Mer 7 Jan 2015 - 16:35, édité 1 fois | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Mer 7 Jan 2015 - 16:25 | |
| Je n'ai pas compris pourquoi tu créé tout le pavé numérique dans le groupe 1 du coup, il y a 4 groupe 1 d'une ligne sur 4 colonnes. Pourquoi ne pas changer le numéro du groupe ou créer directement le groupe 1 avec 4 lignes et 4 colonnes ? | |
| | | 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
| |
| |
| |