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 | |
|
+12JL35 Oscaribout bignono Pedro pascal10000 silverman Jicehel papydall Minibug Marc Yannick Klaus 16 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 Sam 27 Mai 2017 - 1:57 | |
| Nouvelle version: KGF.dll V7.68 du 27/05/2017Nouveautés: - nouvelle fonction HistogramSetAlert: gérer des USER_EVENT pour un survom ou un clic dans un objet Histogram - nouvelle fonction HistogramSetTrave: gérer le traçage du survol dans un objet HistogramModules modifiés: KGF.dll KGF.dllLa doc et les sources sont à jour. Ceci représente un gros travail mais ajoute une possibilité très intéressante. En effet, de deux manières différentes, on peut obtenir des informations sur ce qui se passe avec la souris dans un Histogram. On peut l'utiliser pour afficher des informations dans une barre d'état, pour afficher dynamiquement des informations plus détaillées associées à une valeur survolée, par exemple, etc. Les utilisations sont multiples. Voici le programme de démo. Lancez-le, choisissez un modèle d'histogramme, affichez-le et balladez le curseur dans l'histogramme. Ou cliquez dans une des zones colorées de l'histogramme. - Code:
-
' test_Histogramme2D3D.bas
label creer, supprimer, versfichier, versclip, copier, alert dim res%, HG%, m1%, s$, serie1%(4), serie2%(4), serie3%(4), colors%(4) dim ID1%, ID2%, ID3%, model%, i%, model_bulles%, model_camembert% dim A_WModul%, A_WType%, A_WModel% dim A_LSerie%, A_LValeur%
m1% = -1 model_bulles% = 7 model_camembert% = 8
dll_on "KGF.dll"
full_space 0 button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer button 2 : top 2,35 : left 2,10 : caption 2,"Supprimer" : on_click 2,supprimer button 3 : top 3,10 : left 3,110 : width 3,100 : caption 3,"==> Fichier" : on_click 3,versfichier button 4 : top 4,35 : left 4,110 : width 4,100 : caption 4,"==> Presse-Papier" : on_click 4,versclip
alpha 5 : top 5,10 : left 5,250 : caption 5,"Type d'Histogramme:" combo 6 : top 6,36 : left 6,250 : width 6,110 item_add 6,"Nuage de points" item_add 6,"Par lignes 2D" item_add 6,"Par lignes 3D" item_add 6,"Par barres 2D" item_add 6,"Par barres 3D" item_add 6,"Par cylindres" item_add 6,"A Bulles" item_add 6,"Camembert" res% = dll_call2("SelectComboBoxItem",handle(6),1)
save_dialog 11
alpha 20 : top 20,10 : left 20,700 : caption 20,"Série 1" spin 21 : top 21,30 : left 21,700 : width 21,60 : min 21,0 : max 21,32000 spin 22 : top 22,50 : left 22,700 : width 22,60 : min 22,0 : max 22,32000 spin 23 : top 23,70 : left 23,700 : width 23,60 : min 23,0 : max 23,32000 spin 24 : top 24,90 : left 24,700 : width 24,60 : min 24,0 : max 24,32000 spin 25 : top 25,110 : left 25,700 : width 25,60 : min 25,0 : max 25,32000 position 21,80 position 22,75 position 23,100 position 24,50 position 25,100
alpha 30 : top 30,10 : left 30,800 : caption 30,"Série 2" spin 31 : top 31,30 : left 31,800 : width 31,60 : min 31,0 : max 31,32000 spin 32 : top 32,50 : left 32,800 : width 32,60 : min 32,0 : max 32,32000 spin 33 : top 33,70 : left 33,800 : width 33,60 : min 33,0 : max 33,32000 spin 34 : top 34,90 : left 34,800 : width 34,60 : min 34,0 : max 34,32000 spin 35 : top 35,110 : left 35,800 : width 35,60 : min 35,0 : max 25,32000 position 31,90 position 32,100 position 33,100 position 34,86 position 35,65
button 40 : top 40,140 : left 40,800 : caption 40,"(1) -> (2)" : : font_bold 40 : on_click 40,copier
alpha 99 : top 99,640 : left 99,10 : caption 99,"En attente..." edit 98 : top 98,670 : left 98,10 : width 98,400 : inactive 98
on_user_event alert
end
creer: if HG%<>0 then return model% = item_index(6) for i%=0 to 4 serie1%(i%) = position(21+i%) serie2%(i%) = position(31+i%) next i% if model%=model_bulles% serie3%(0) = ((serie1%(0)-serie2%(0))*100)/serie2%(0) serie3%(1) = ((serie1%(1)-serie2%(1))*100)/serie2%(1) serie3%(2) = ((serie1%(2)-serie2%(2))*100)/serie2%(2) serie3%(3) = ((serie1%(3)-serie2%(3))*100)/serie2%(3) serie3%(4) = ((serie1%(4)-serie2%(4))*100)/serie2%(4) end_if if model%=model_camembert% colors%(0) = (255*256+ 0)*256+ 0 colors%(1) = ( 0*256+255)*256+ 0 colors%(2) = ( 0*256+ 0)*256+255 colors%(3) = ( 0*256+255)*256+255 colors%(4) = (200*256+255)*256+200 end_if ' créer l'objet Histogram, retourner l'identifiant dans HG%, type Model% HG% = dll_call6("CreateHistogram",handle(0),192,214,255,model%,0) ' pour faire un FULL_SPACE du HG% ' res% = dll_call6("HistogramGeometry",HG%,1,m1%,m1%,m1%,m1%) ' donner les dimensions du HG% res% = dll_call6("HistogramGeometry",HG%,1,10,60,600,500) ' charger les libellés des axes s$ = "Action" if model%=model_bulles% then s$ = "Prévision" res% = dll_call4("HistogramAxisLabel",HG%,0,1,adr(s$)) : ' abscisse s$ = "Résultat" if model%=model_bulles% then s$ = "Réalisation" res% = dll_call4("HistogramAxisLabel",HG%,0,2,adr(s$)) : ' ordonnée s$ = "Profondeur" if model%=model_bulles% then s$ = "Ecarts" res% = dll_call4("HistogramAxisLabel",HG%,0,3,adr(s$)) : ' profondeur ' définir le nombre de points res% = dll_call2("HistogramPointCount",HG%,5) ' défnir les zones pour le graphisme et les légendes res% = dll_call6("HistogramArea",HG%,1,10,10,550,400) : ' graphismes res% = dll_call6("HistogramArea",HG%,2,10,420,400,200) : ' légendes ' autoriser ou non les bordures (graphismes=oui, légendes=non) res% = dll_call3("HistogramBorders",HG%,1,0)
' définir deux séries de valeurs if model%=model_camembert% s$ = "Réalisation" ID1% = dll_call5("HistogramPieSerie",HG%,5,adr(s$),adr(serie1%),adr(colors%)) res% = dll_call2("HistogramHighlightPieSegment",HG%,2) else s$ = "Réalisation" ID1% = dll_call4("HistogramSerie",HG%,5,adr(s$),adr(serie1%)) s$ = "Prévision" ID2% = dll_call4("HistogramSerie",HG%,5,adr(s$),adr(serie2%)) end_if if model%=model_bulles% : ' type "Bulles" s$ = "Ecarts" ID3% = dll_call4("HistogramSerie",HG%,5,adr(s$),adr(serie3%)) end_if ' définir les libellés des points s$ = "Vitesse" res% = dll_call4("HistogramPointLabel",HG%,0,1,adr(s$)) s$ = "Taille" res% = dll_call4("HistogramPointLabel",HG%,0,2,adr(s$)) s$ = "Volume" res% = dll_call4("HistogramPointLabel",HG%,0,3,adr(s$)) s$ = "Facilité" res% = dll_call4("HistogramPointLabel",HG%,0,4,adr(s$)) s$ = "Clarté" res% = dll_call4("HistogramPointLabel",HG%,0,5,adr(s$)) ' définir la géométrie des séries select item_index(6) case 1 res% = dll_call4("HistogramSerieGeometry",HG%,80,0,0) : ' pour "points" case 2 res% = dll_call4("HistogramSerieGeometry",HG%,80,0,0) : ' pour "ligne" case 3 res% = dll_call4("HistogramSerieGeometry",HG%,80,0,25) : ' pour "ligne" case 4 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,0) : ' pour "barre 2D" case 5 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,25) : ' pour "barre 3D" case 6 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,0) : ' pour "cylindre" case 7 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,25) : ' pour "bulle" end_select ' définir épaisseurs de trait et couleurs des séries res% = dll_call6("HistogramSerieAttributes",HG%,1,2,255,0,0) res% = dll_call6("HistogramSerieAttributes",HG%,2,4,0,0,255) if model%=model_bulles% : ' type "Bulles" res% = dll_call6("HistogramSerieAttributes",HG%,3,4,255,255,0) end_if
' autoriser les alertes en clic et survol res% = dll_call4("HistogramSetAlert",HG%,handle(0),1,1) ' autoriser le traçage en survol res% = dll_call3("HistogramSetTrace",HG%,handle(98),1) ' afficher tout res% = dll_call2("HistogramUpdate",HG%,1) return return supprimer: HG% = dll_call1("DeleteHistogram",HG%) return
versfichier: if HG%=0 then return filter 11,"Fichiers image (BMP,JPG,PNG)|*.BMP;*.JPG;*.PNG" s$ = file_name$(11) if s$="_" then return if file_exists(s$)=1 if message_confirmation_yes_no("Ce fichier existe déjà. Remplacer ?")<>1 then return file_delete s$ end_if res% = dll_call2("HistogramSaveToFile",HG%,adr(s$)) if res%=0 then message "L'image est dans le fichier." return
versclip: if SW%=0 then return res% = dll_call2("HistogramSaveToFile",HG%,0) if res%=0 then message "L'image est dans le presse-papier." return
copier: for i%=0 to 4 position 31+i%,position(21+i%) next i% return alert: ' caption 99,"LParam="+hex$(USER_EVENT_WPARAM)+" WParam="+hex$(USER_EVENT_LPARAM) A_WModul% = bin_and(USER_EVENT_LPARAM,hex("FF000000")) A_WType% = bin_and(USER_EVENT_LPARAM,hex("00FF0000"))/65536 A_WModel% = bin_and(USER_EVENT_LPARAM,hex("0000FFFF")) A_LSerie% = bin_and(USER_EVENT_WPARAM,hex("FFFF0000"))/65536 A_LValeur% = bin_and(USER_EVENT_WPARAM,hex("0000FFFF")) if A_WModul%<>hex("02000000") then return : ' pas un évènement Histogram ? ' caption 99,str$(A_WType%)+" "+str$(A_WModel%)+" "+str$(A_LSerie%)+" "+str$(A_LValeur%) select A_WType% case 0: ' exit caption 99,"" case 1: ' move s$ = "Move " select A_LSerie% case 1 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie1%(A_LValeur%)) s$ = s$ + " série "+str$(A_LSerie%)+"=Réalisation" case 2 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie2%(A_LValeur%)) s$ = s$ + " série "+str$(A_LSerie%)+"=Prévision" case 3 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie3%(A_LValeur%)) s$ = s$ + " série "+str$(A_LSerie%)+"=Ecart" end_select s$ = s$ + " modèle "+item_read$(6,A_WModel%) caption 99,s$ case 2: ' click s$ = "Click " select A_LSerie% case 1 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie1%(A_LValeur%)) case 2 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie2%(A_LValeur%)) case 3 s$ = s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie3%(A_LValeur%)) end_select s$ = s$ + " modèle "+item_read$(6,A_WModel%) s$ = s$ + " série "+str$(A_LSerie%) caption 99,s$ end_select return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 27 Mai 2017 - 12:17 | |
| A jour ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 31 Mai 2017 - 3:06 | |
| Nouvelle version: KGF.dll V7.69 du 28/05/2017
Nouveautés: - objet Histogram: -- normalisation de l'intervalle d'affichage en ordonnée (tenir compte des valeurs minimales et maximales des séries en ordonnée) -- gérer des valeurs négatives (sauf pour les formats bulles et camembert) -- afficher quelques repères numériques sur l'ordonnée -- afficher l'abscisse en Y=0 si des valeurs négatives sont à afficher
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 2 Juin 2017 - 0:00 | |
| Nouvelle version: KGF.dll V7.7O du 31/05/2017Nouveautés: - objet Histogram: -- normalisation de l'intervalle d'affichage en ordonnée (tenir compte des valeurs minimales et maximales des séries en ordonnée) -- nouvelles fonctions HistogramBackground, HistogramTitle, HistogramTitleAttributes -- nouveau code 3 (titre) pour la fonction HistogramArea -- nouveau paramètre (AllowTitle%) pour la fonction HistogramBordersModules modifiés: KGF.dll KGF.dllLa doc et les sources sont à jour. Ces nouveautés permettent: - gérer une image de fond (fichier BMP) - créer une aire de titre, avec le titre, sa police, sa taille et ses attributs graphiques Voici le nouveau programme de démo qui gère tout cela: - Code:
-
' test_Histogramme2D3D.bas
label creer, supprimer, versfichier, versclip, copier, alert, fond dim res%, HG%, m1%, s$, serie1%(4), serie2%(4), serie3%(4), colors%(4) dim ID1%, ID2%, ID3%, model%, i%, model_bulles%, model_camembert%, fond$ dim s1$ dim A_WModul%, A_WType%, A_WModel%, A_LSerie%, A_LValeur%
m1% = -1 model_bulles% = 7 model_camembert% = 8 fond$ = "_"
dll_on "KGF.dll"
full_space 0 button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer button 2 : top 2,35 : left 2,10 : caption 2,"Supprimer" : on_click 2,supprimer button 3 : top 3,10 : left 3,110 : width 3,100 : caption 3,"==> Fichier" : on_click 3,versfichier button 4 : top 4,35 : left 4,110 : width 4,100 : caption 4,"==> Presse-Papier" : on_click 4,versclip
alpha 5 : top 5,10 : left 5,250 : caption 5,"Type d'Histogramme:" combo 6 : top 6,36 : left 6,250 : width 6,110 item_add 6,"Nuage de points" item_add 6,"Par lignes 2D" item_add 6,"Par lignes 3D" item_add 6,"Par barres 2D" item_add 6,"Par barres 3D" item_add 6,"Par cylindres" item_add 6,"A Bulles" item_add 6,"Camembert" res% = dll_call2("SelectComboBoxItem",handle(6),1)
save_dialog 11 open_dialog 12
alpha 20 : top 20,10 : left 20,700 : caption 20,"Série 1" spin 21 : top 21,30 : left 21,700 : width 21,60 : min 21,0-32000 : max 21,32000 spin 22 : top 22,50 : left 22,700 : width 22,60 : min 22,0-32000 : max 22,32000 spin 23 : top 23,70 : left 23,700 : width 23,60 : min 23,0-32000 : max 23,32000 spin 24 : top 24,90 : left 24,700 : width 24,60 : min 24,0-32000 : max 24,32000 spin 25 : top 25,110 : left 25,700 : width 25,60 : min 25,0-32000 : max 25,32000 position 21,80 position 22,75 position 23,100 position 24,50 position 25,100
alpha 30 : top 30,10 : left 30,800 : caption 30,"Série 2" spin 31 : top 31,30 : left 31,800 : width 31,60 : min 31,0-32000 : max 31,32000 spin 32 : top 32,50 : left 32,800 : width 32,60 : min 32,0-32000 : max 32,32000 spin 33 : top 33,70 : left 33,800 : width 33,60 : min 33,0-32000 : max 33,32000 spin 34 : top 34,90 : left 34,800 : width 34,60 : min 34,0-32000 : max 34,32000 spin 35 : top 35,110 : left 35,800 : width 35,60 : min 35,0-32000 : max 35,32000 position 31,90 position 32,100 position 33,100 position 34,86 position 35,65
button 40 : top 40,140 : left 40,800 : caption 40,"(1) -> (2)" : : font_bold 40 : on_click 40,copier
button 41 : top 41,170 : left 41,800 : caption 41,"Fond d'image" : on_click 41,fond picture 42 : top 42,200 : left 42,800 : width 42,360 : height 42,240 : stretch_on 42
alpha 43 : top 43,450 : left 43,800 : caption 43,"Titre:" edit 44 : top 44,450 : left 44,850 : width 44,300 : text 44,"Démonstration" alpha 45 : top 45,480 : left 45,800 : caption 45,"Police:" Combo 46 : top 46,480 : left 46,850 : width 46,300 : font_names_load 46 for i%=1 to count(46) if item_read$(46,i%)="Arial" then exit_for next i% res% = dll_call2("SelectComboBoxItem",handle(46),i%) alpha 47 : top 47,510 : left 47,800 : caption 47,"Taille:" Combo 48 : top 48,510 : left 48,850 : width 48,40 item_add 48,"8" item_add 48,"10" item_add 48,"12" item_add 48,"16" item_add 48,"20" item_add 48,"24" res% = dll_call2("SelectComboBoxItem",handle(48),3) check 50 : top 50,510 : left 50,930 : caption 50,"G" : font_bold 50 check 51 : top 51,510 : left 51,970 : caption 51,"I" : font_italic 51 check 52 : top 52,510 : left 52,1010 : caption 52,"S" : font_underline 52 check 53 : top 53,510 : left 53,1050 : caption 53,"B" : font_strike 53
alpha 99 : top 99,640 : left 99,10 : caption 99,"En attente..." edit 98 : top 98,670 : left 98,10 : width 98,400 : inactive 98
on_user_event alert filter 12,"Fichier BMP|*.bmp"
end
creer: if HG%<>0 then return model% = item_index(6) for i%=0 to 4 serie1%(i%) = position(21+i%) serie2%(i%) = position(31+i%) next i% if model%=model_bulles% if (serie2%(0)<1) or (serie2%(1)<1) or (serie2%(2)<1) or (serie2%(3)<1) or (serie2%(4)<1) message "Les valeurs de la série 2 doivent être >0 !" return end_if serie3%(0) = ((serie1%(0)-serie2%(0))*100)/serie2%(0) serie3%(1) = ((serie1%(1)-serie2%(1))*100)/serie2%(1) serie3%(2) = ((serie1%(2)-serie2%(2))*100)/serie2%(2) serie3%(3) = ((serie1%(3)-serie2%(3))*100)/serie2%(3) serie3%(4) = ((serie1%(4)-serie2%(4))*100)/serie2%(4) end_if if model%=model_camembert% colors%(0) = (255*256+ 0)*256+ 0 colors%(1) = ( 0*256+255)*256+ 0 colors%(2) = ( 0*256+ 0)*256+255 colors%(3) = ( 0*256+255)*256+255 colors%(4) = (200*256+255)*256+200 end_if ' créer l'objet Histogram, retourner l'identifiant dans HG%, type Model% HG% = dll_call6("CreateHistogram",handle(0),192,214,255,model%,0)
' pour faire un FULL_SPACE du HG% ' res% = dll_call6("HistogramGeometry",HG%,1,m1%,m1%,m1%,m1%) ' donner les dimensions du HG% res% = dll_call6("HistogramGeometry",HG%,1,10,60,600,500) ' installer l'image de fond si nécessaire if fond$<>"_" then res% = dll_call2("HistogramBackground",HG%,adr(fond$)) ' charger les libellés des axes s$ = "Action" if model%=model_bulles% then s$ = "Prévision" res% = dll_call4("HistogramAxisLabel",HG%,0,1,adr(s$)) : ' abscisse s$ = "Résultat" if model%=model_bulles% then s$ = "Réalisation" res% = dll_call4("HistogramAxisLabel",HG%,0,2,adr(s$)) : ' ordonnée s$ = "Profondeur" if model%=model_bulles% then s$ = "Ecarts" res% = dll_call4("HistogramAxisLabel",HG%,0,3,adr(s$)) : ' profondeur ' définir le nombre de points res% = dll_call2("HistogramPointCount",HG%,5) ' défnir les zones pour le graphisme, les légendes et le titre res% = dll_call6("HistogramArea",HG%,1,10,10,550,400) : ' graphismes res% = dll_call6("HistogramArea",HG%,2,10,420,400,200) : ' légendes res% = dll_call6("HistogramArea",HG%,3,350,430,550,490) : ' titre ' autoriser ou non les bordures (graphismes=oui, légendes=non, titre=oui) res% = dll_call4("HistogramBorders",HG%,1,0,1) ' charger le titre du histogramme s$ = text$(44) s1$ = text$(46) res% = dll_call3("HistogramTitle",HG%,adr(s$),adr(s1$)) ' adapter les propriétés du titre res% = dll_call6("HistogramTitleAttributes",HG%,val(text$(48)),checked(50),checked(51),checked(52),checked(53)) ' définir deux séries de valeurs if model%=model_camembert% s$ = "Réalisation" ID1% = dll_call5("HistogramPieSerie",HG%,5,adr(s$),adr(serie1%),adr(colors%)) res% = dll_call2("HistogramHighlightPieSegment",HG%,2) else s$ = "Réalisation" ID1% = dll_call4("HistogramSerie",HG%,5,adr(s$),adr(serie1%)) s$ = "Prévision" ID2% = dll_call4("HistogramSerie",HG%,5,adr(s$),adr(serie2%)) end_if if model%=model_bulles% : ' type "Bulles" s$ = "Ecarts" ID3% = dll_call4("HistogramSerie",HG%,5,adr(s$),adr(serie3%)) end_if ' définir les libellés des points s$ = "Vitesse" res% = dll_call4("HistogramPointLabel",HG%,0,1,adr(s$)) s$ = "Taille" res% = dll_call4("HistogramPointLabel",HG%,0,2,adr(s$)) s$ = "Volume" res% = dll_call4("HistogramPointLabel",HG%,0,3,adr(s$)) s$ = "Facilité" res% = dll_call4("HistogramPointLabel",HG%,0,4,adr(s$)) s$ = "Clarté" res% = dll_call4("HistogramPointLabel",HG%,0,5,adr(s$)) ' définir la géométrie des séries select item_index(6) case 1 res% = dll_call4("HistogramSerieGeometry",HG%,80,0,0) : ' pour "points" case 2 res% = dll_call4("HistogramSerieGeometry",HG%,80,0,0) : ' pour "ligne" case 3 res% = dll_call4("HistogramSerieGeometry",HG%,80,0,25) : ' pour "ligne" case 4 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,0) : ' pour "barre 2D" case 5 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,25) : ' pour "barre 3D" case 6 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,0) : ' pour "cylindre" case 7 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,25) : ' pour "bulle" end_select ' définir épaisseurs de trait et couleurs des séries res% = dll_call6("HistogramSerieAttributes",HG%,1,2,255,0,0) res% = dll_call6("HistogramSerieAttributes",HG%,2,4,0,0,255) if model%=model_bulles% : ' type "Bulles" res% = dll_call6("HistogramSerieAttributes",HG%,3,4,255,255,0) end_if
' autoriser les alertes en clic et survol res% = dll_call4("HistogramSetAlert",HG%,handle(0),1,1) ' autoriser le traçage en survol res% = dll_call3("HistogramSetTrace",HG%,handle(98),1) ' afficher tout res% = dll_call2("HistogramUpdate",HG%,1) return return supprimer: HG% = dll_call1("DeleteHistogram",HG%) return
versfichier: if HG%=0 then return filter 11,"Fichiers image (BMP,JPG,PNG)|*.BMP;*.JPG;*.PNG" s$ = file_name$(11) if s$="_" then return if file_exists(s$)=1 if message_confirmation_yes_no("Ce fichier existe déjà. Remplacer ?")<>1 then return file_delete s$ end_if res% = dll_call2("HistogramSaveToFile",HG%,adr(s$)) if res%=0 then message "L'image est dans le fichier." return
versclip: if SW%=0 then return res% = dll_call2("HistogramSaveToFile",HG%,0) if res%=0 then message "L'image est dans le presse-papier." return
copier: for i%=0 to 4 position 31+i%,position(21+i%) next i% return alert: ' caption 99,"LParam="+hex$(USER_EVENT_WPARAM)+" WParam="+hex$(USER_EVENT_LPARAM) A_WModul% = bin_and(USER_EVENT_LPARAM,hex("FF000000")) A_WType% = bin_and(USER_EVENT_LPARAM,hex("00FF0000"))/65536 A_WModel% = bin_and(USER_EVENT_LPARAM,hex("0000FFFF")) A_LSerie% = bin_and(USER_EVENT_WPARAM,hex("FFFF0000"))/65536 A_LValeur% = bin_and(USER_EVENT_WPARAM,hex("0000FFFF")) if A_WModul%<>hex("02000000") then return : ' pas un évènement Histogram ? ' caption 99,str$(A_WType%)+" "+str$(A_WModel%)+" "+str$(A_LSerie%)+" "+str$(A_LValeur%) select A_WType% case 0: ' exit caption 99,"" case 1: ' move s$ = "Move " select A_LSerie% case 1 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie1%(A_LValeur%)) s$ = s$ + " série "+str$(A_LSerie%)+"=Réalisation" case 2 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie2%(A_LValeur%)) s$ = s$ + " série "+str$(A_LSerie%)+"=Prévision" case 3 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie3%(A_LValeur%)) s$ = s$ + " série "+str$(A_LSerie%)+"=Ecart" end_select s$ = s$ + " modèle "+item_read$(6,A_WModel%) caption 99,s$ case 2: ' click s$ = "Click " select A_LSerie% case 1 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie1%(A_LValeur%)) case 2 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie2%(A_LValeur%)) case 3 s$ = s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie3%(A_LValeur%)) end_select s$ = s$ + " modèle "+item_read$(6,A_WModel%) s$ = s$ + " série "+str$(A_LSerie%) caption 99,s$ end_select return
fond: fond$ = file_name$(12) if fond$<>"_" if file_exists(fond$)=0 then fond$ = "_" if fond$<>"_" then file_load 42,fond$ end_if return
Et voici un exemple avec des barres 3D, 2 valeurs négatives et une valeur nulle, avec une image de fond et un titre: et ses paramètres: | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Ven 2 Juin 2017 - 3:46 | |
| Je n'ai pas encore eu l'occasion de tester toutes ces nouvelles fonctions. En tout cas bravo. On se croirai sous Word ou Excel. Super 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 Ven 2 Juin 2017 - 9:23 | |
| | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 2 Juin 2017 - 10:29 | |
| @ Klaus, Aurais tu changé le mot de passe de ton webdav ?... J' ai droit à un wrong password avec celui en signature. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 2 Juin 2017 - 18:59 | |
| Non, je n'ai rien changé. J'y ai accès sous forme de WebDav, mais je ne peux pas non plus le connecter en tant que Panoramicien simple.
Mais tu peux toujours télécharger KGF.zip et KGF.hlp par les liens dans ma signature. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: KGF_dll - nouvelles versions Ven 2 Juin 2017 - 19:24 | |
| - Idem pour moi.:
J'ai entré le mot de passe : panoramic123Remarque le lien : KGF.dll (en format ZIP) fonctionne parfaitement. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 2 Juin 2017 - 21:05 | |
| En cliquant sur le logo www j' ai atterri sur ton forum au lieu de ton site Je me suis inscrit mais j' attends toujours le mail... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 2 Juin 2017 - 23:11 | |
| j' ai pas cliqué sur le bon www...J' ai atterri sur le forum à Papydall. Mais ton site est indisponible 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 Juin 2017 - 1:11 | |
| Il y a un problème avec le "Site normal" - je le corrigerai. Mais le "Site miroir" fonctionne parfaitement et contient exactement la même chose (comme son nom l'indique). Et plus, le lien vers KGF.zip dans ma signature fonctionne normalement. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 3 Juin 2017 - 2:20 | |
| Oh miroir...mon beau miroir... Ok Klaus, je vais lui demander si je suis beau... | |
| | | 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 Juin 2017 - 2:30 | |
| J'ai dû migrer mon site principal vers une nouvelle version du logiciel d'hébergement, chez le même hébergeur. La nouvelle adresse est: https://klauspanoramic.000webhostapp.com/Tous les liens sur la page Panoramic fonctionnent. Je ferai les autres dans les prochains jours. Le lien vers le "Site normal" dans ma signature est corrigé. | |
| | | 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 Juin 2017 - 8:58 | |
| Ce matin, mon "site normal" est bloqué à nouveau. Utilisez le "site miroir". Ca fonctionne à nouveau ! | |
| | | 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 Juin 2017 - 19:36 | |
| Nouvelle version: KGF.dll V7.71 du 03/06/2017Nouveautés: - objet Histogram: gestion correcte des valeurs négatives en série 3 pour le modèle "bulles" Modules modifiés: KGF.dllLa doc est inchangée. Les sources sont à jour. La modification consiste à afficher une bulle jaune avec un bord rouge pout toutes les valeurs négatives de la série 3, celle qui détermine de diamètre des bulles. Le programme de démo: - Code:
-
' test_Histogramme2D3D.bas
label creer, supprimer, versfichier, versclip, copier, alert, fond dim res%, HG%, m1%, s$, serie1%(4), serie2%(4), serie3%(4), colors%(4) dim ID1%, ID2%, ID3%, model%, i%, model_bulles%, model_camembert%, fond$ dim s1$ dim A_WModul%, A_WType%, A_WModel%, A_LSerie%, A_LValeur%
m1% = -1 model_bulles% = 7 model_camembert% = 8 fond$ = "_"
dll_on "KGF.dll"
full_space 0 button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer button 2 : top 2,35 : left 2,10 : caption 2,"Supprimer" : on_click 2,supprimer button 3 : top 3,10 : left 3,110 : width 3,100 : caption 3,"==> Fichier" : on_click 3,versfichier button 4 : top 4,35 : left 4,110 : width 4,100 : caption 4,"==> Presse-Papier" : on_click 4,versclip
alpha 5 : top 5,10 : left 5,250 : caption 5,"Type d'Histogramme:" combo 6 : top 6,36 : left 6,250 : width 6,110 item_add 6,"Nuage de points" item_add 6,"Par lignes 2D" item_add 6,"Par lignes 3D" item_add 6,"Par barres 2D" item_add 6,"Par barres 3D" item_add 6,"Par cylindres" item_add 6,"A Bulles" item_add 6,"Camembert" res% = dll_call2("SelectComboBoxItem",handle(6),1)
save_dialog 11 open_dialog 12
alpha 20 : top 20,10 : left 20,700 : caption 20,"Série 1" spin 21 : top 21,30 : left 21,700 : width 21,60 : min 21,0-32000 : max 21,32000 spin 22 : top 22,50 : left 22,700 : width 22,60 : min 22,0-32000 : max 22,32000 spin 23 : top 23,70 : left 23,700 : width 23,60 : min 23,0-32000 : max 23,32000 spin 24 : top 24,90 : left 24,700 : width 24,60 : min 24,0-32000 : max 24,32000 spin 25 : top 25,110 : left 25,700 : width 25,60 : min 25,0-32000 : max 25,32000 position 21,80 position 22,75 position 23,100 position 24,50 position 25,100
alpha 30 : top 30,10 : left 30,800 : caption 30,"Série 2" spin 31 : top 31,30 : left 31,800 : width 31,60 : min 31,0-32000 : max 31,32000 spin 32 : top 32,50 : left 32,800 : width 32,60 : min 32,0-32000 : max 32,32000 spin 33 : top 33,70 : left 33,800 : width 33,60 : min 33,0-32000 : max 33,32000 spin 34 : top 34,90 : left 34,800 : width 34,60 : min 34,0-32000 : max 34,32000 spin 35 : top 35,110 : left 35,800 : width 35,60 : min 35,0-32000 : max 35,32000 position 31,90 position 32,100 position 33,100 position 34,86 position 35,65
button 40 : top 40,140 : left 40,800 : caption 40,"(1) -> (2)" : : font_bold 40 : on_click 40,copier
button 41 : top 41,170 : left 41,800 : caption 41,"Fond d'image" : on_click 41,fond picture 42 : top 42,200 : left 42,800 : width 42,360 : height 42,240 : stretch_on 42
alpha 43 : top 43,450 : left 43,800 : caption 43,"Titre:" edit 44 : top 44,450 : left 44,850 : width 44,300 : text 44,"Démonstration" alpha 45 : top 45,480 : left 45,800 : caption 45,"Police:" Combo 46 : top 46,480 : left 46,850 : width 46,300 : font_names_load 46 for i%=1 to count(46) if item_read$(46,i%)="Arial" then exit_for next i% res% = dll_call2("SelectComboBoxItem",handle(46),i%) alpha 47 : top 47,510 : left 47,800 : caption 47,"Taille:" Combo 48 : top 48,510 : left 48,850 : width 48,40 item_add 48,"8" item_add 48,"10" item_add 48,"12" item_add 48,"16" item_add 48,"20" item_add 48,"24" res% = dll_call2("SelectComboBoxItem",handle(48),3) check 50 : top 50,510 : left 50,930 : caption 50,"G" : font_bold 50 check 51 : top 51,510 : left 51,970 : caption 51,"I" : font_italic 51 check 52 : top 52,510 : left 52,1010 : caption 52,"S" : font_underline 52 check 53 : top 53,510 : left 53,1050 : caption 53,"B" : font_strike 53
alpha 99 : top 99,640 : left 99,10 : caption 99,"En attente..." edit 98 : top 98,670 : left 98,10 : width 98,400 : inactive 98
on_user_event alert filter 12,"Fichier BMP|*.bmp"
end
creer: if HG%<>0 then return model% = item_index(6) for i%=0 to 4 serie1%(i%) = position(21+i%) serie2%(i%) = position(31+i%) next i% if model%=model_bulles% if (serie2%(0)<1) or (serie2%(1)<1) or (serie2%(2)<1) or (serie2%(3)<1) or (serie2%(4)<1) message "Les valeurs de la série 2 doivent être >0 !" return end_if serie3%(0) = ((serie1%(0)-serie2%(0))*100)/serie2%(0) serie3%(1) = ((serie1%(1)-serie2%(1))*100)/serie2%(1) serie3%(2) = ((serie1%(2)-serie2%(2))*100)/serie2%(2) serie3%(3) = ((serie1%(3)-serie2%(3))*100)/serie2%(3) serie3%(4) = ((serie1%(4)-serie2%(4))*100)/serie2%(4) end_if if model%=model_camembert% colors%(0) = (255*256+ 0)*256+ 0 colors%(1) = ( 0*256+255)*256+ 0 colors%(2) = ( 0*256+ 0)*256+255 colors%(3) = ( 0*256+255)*256+255 colors%(4) = (200*256+255)*256+200 end_if ' créer l'objet Histogram, retourner l'identifiant dans HG%, type Model% HG% = dll_call6("CreateHistogram",handle(0),192,214,255,model%,0)
' pour faire un FULL_SPACE du HG% ' res% = dll_call6("HistogramGeometry",HG%,1,m1%,m1%,m1%,m1%) ' donner les dimensions du HG% res% = dll_call6("HistogramGeometry",HG%,1,10,60,600,500) ' installer l'image de fond si nécessaire if fond$<>"_" then res% = dll_call2("HistogramBackground",HG%,adr(fond$)) ' charger les libellés des axes s$ = "Action" if model%=model_bulles% then s$ = "Prévision" res% = dll_call4("HistogramAxisLabel",HG%,0,1,adr(s$)) : ' abscisse s$ = "Résultat" if model%=model_bulles% then s$ = "Réalisation" res% = dll_call4("HistogramAxisLabel",HG%,0,2,adr(s$)) : ' ordonnée s$ = "Profondeur" if model%=model_bulles% then s$ = "Ecarts" res% = dll_call4("HistogramAxisLabel",HG%,0,3,adr(s$)) : ' profondeur ' définir le nombre de points res% = dll_call2("HistogramPointCount",HG%,5) ' défnir les zones pour le graphisme, les légendes et le titre res% = dll_call6("HistogramArea",HG%,1,10,10,550,400) : ' graphismes res% = dll_call6("HistogramArea",HG%,2,10,415,200,80) : ' légendes res% = dll_call6("HistogramArea",HG%,3,350,430,550,490) : ' titre ' autoriser ou non les bordures (graphismes=oui, légendes=oui, titre=oui) res% = dll_call4("HistogramBorders",HG%,1,1,1) ' charger le titre du histogramme s$ = text$(44) s1$ = text$(46) res% = dll_call3("HistogramTitle",HG%,adr(s$),adr(s1$)) ' adapter les propriétés du titre res% = dll_call6("HistogramTitleAttributes",HG%,val(text$(48)),checked(50),checked(51),checked(52),checked(53)) ' définir deux séries de valeurs if model%=model_camembert% s$ = "Réalisation" ID1% = dll_call5("HistogramPieSerie",HG%,5,adr(s$),adr(serie1%),adr(colors%)) res% = dll_call2("HistogramHighlightPieSegment",HG%,2) else s$ = "Réalisation" ID1% = dll_call4("HistogramSerie",HG%,5,adr(s$),adr(serie1%)) s$ = "Prévision" ID2% = dll_call4("HistogramSerie",HG%,5,adr(s$),adr(serie2%)) end_if if model%=model_bulles% : ' type "Bulles" s$ = "Ecarts" ID3% = dll_call4("HistogramSerie",HG%,5,adr(s$),adr(serie3%)) end_if ' définir les libellés des points s$ = "Vitesse" res% = dll_call4("HistogramPointLabel",HG%,0,1,adr(s$)) s$ = "Taille" res% = dll_call4("HistogramPointLabel",HG%,0,2,adr(s$)) s$ = "Volume" res% = dll_call4("HistogramPointLabel",HG%,0,3,adr(s$)) s$ = "Facilité" res% = dll_call4("HistogramPointLabel",HG%,0,4,adr(s$)) s$ = "Clarté" res% = dll_call4("HistogramPointLabel",HG%,0,5,adr(s$)) ' définir la géométrie des séries select item_index(6) case 1 res% = dll_call4("HistogramSerieGeometry",HG%,80,0,0) : ' pour "points" case 2 res% = dll_call4("HistogramSerieGeometry",HG%,80,0,0) : ' pour "ligne" case 3 res% = dll_call4("HistogramSerieGeometry",HG%,80,0,25) : ' pour "ligne" case 4 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,0) : ' pour "barre 2D" case 5 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,25) : ' pour "barre 3D" case 6 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,0) : ' pour "cylindre" case 7 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,25) : ' pour "bulle" end_select ' définir épaisseurs de trait et couleurs des séries res% = dll_call6("HistogramSerieAttributes",HG%,1,2,255,0,0) res% = dll_call6("HistogramSerieAttributes",HG%,2,4,0,0,255) if model%=model_bulles% : ' type "Bulles" res% = dll_call6("HistogramSerieAttributes",HG%,3,4,255,255,0) end_if
' autoriser les alertes en clic et survol res% = dll_call4("HistogramSetAlert",HG%,handle(0),1,1) ' autoriser le traçage en survol res% = dll_call3("HistogramSetTrace",HG%,handle(98),1) ' afficher tout res% = dll_call2("HistogramUpdate",HG%,1) return return supprimer: HG% = dll_call1("DeleteHistogram",HG%) return
versfichier: if HG%=0 then return filter 11,"Fichiers image (BMP,JPG,PNG)|*.BMP;*.JPG;*.PNG" s$ = file_name$(11) if s$="_" then return if file_exists(s$)=1 if message_confirmation_yes_no("Ce fichier existe déjà. Remplacer ?")<>1 then return file_delete s$ end_if res% = dll_call2("HistogramSaveToFile",HG%,adr(s$)) if res%=0 then message "L'image est dans le fichier." return
versclip: if SW%=0 then return res% = dll_call2("HistogramSaveToFile",HG%,0) if res%=0 then message "L'image est dans le presse-papier." return
copier: for i%=0 to 4 position 31+i%,position(21+i%) next i% return alert: ' caption 99,"LParam="+hex$(USER_EVENT_WPARAM)+" WParam="+hex$(USER_EVENT_LPARAM) A_WModul% = bin_and(USER_EVENT_LPARAM,hex("FF000000")) A_WType% = bin_and(USER_EVENT_LPARAM,hex("00FF0000"))/65536 A_WModel% = bin_and(USER_EVENT_LPARAM,hex("0000FFFF")) A_LSerie% = bin_and(USER_EVENT_WPARAM,hex("FFFF0000"))/65536 A_LValeur% = bin_and(USER_EVENT_WPARAM,hex("0000FFFF")) if A_WModul%<>hex("02000000") then return : ' pas un évènement Histogram ? ' caption 99,str$(A_WType%)+" "+str$(A_WModel%)+" "+str$(A_LSerie%)+" "+str$(A_LValeur%) select A_WType% case 0: ' exit caption 99,"" case 1: ' move s$ = "Move " select A_LSerie% case 1 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie1%(A_LValeur%)) s$ = s$ + " série "+str$(A_LSerie%)+"=Réalisation" case 2 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie2%(A_LValeur%)) s$ = s$ + " série "+str$(A_LSerie%)+"=Prévision" case 3 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie3%(A_LValeur%)) s$ = s$ + " série "+str$(A_LSerie%)+"=Ecart" end_select s$ = s$ + " modèle "+item_read$(6,A_WModel%) caption 99,s$ case 2: ' click s$ = "Click " select A_LSerie% case 1 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie1%(A_LValeur%)) case 2 s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie2%(A_LValeur%)) case 3 s$ = s$ = s$ + "Valeur "+str$(A_LValeur%)+"="+str$(serie3%(A_LValeur%)) end_select s$ = s$ + " modèle "+item_read$(6,A_WModel%) s$ = s$ + " série "+str$(A_LSerie%) caption 99,s$ end_select return
fond: fond$ = file_name$(12) if fond$<>"_" if file_exists(fond$)=0 then fond$ = "_" if fond$<>"_" then file_load 42,fond$ end_if return
et le résultat: | |
| | | 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 Juin 2017 - 13:20 | |
| Nouvelle version: KGF.dll V7.72 du 04/06/2017Nouveautés: - nouvel objet: AnimatedPictureModules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour. Cet objet est comme un picture (il peut afficher le contenu d'un fichier image), mais on peut lui charger plusieurs images (pas de limite par proramme !), et faire défiler ces images, dans l'ordre, avec une vitesse paramétrable. Pour de garndes images, cela ressemble à un diaporama automatique, et pour des petites images, cela fait des animations (homme qui marche, ...). Voici une démo rapide: - Code:
-
' test_AnimatedPicture.bas
dim res%, AP%, M1%, nom$, w%, h% M1% = -1
dll_on "KGF.dll"
AP% = dll_call3("CreateAnimatedPicture",handle(0),M1%,200) res% = dll_call3("MoveAnimatedPicture",AP%,300,200)
nom$ = "marche_1_1_1_1.jpg" res% = dll_call3("AnalyzeImageFile",adr(nom$),adr(w%),adr(h%)) w% = w%/3 : h% = h%/3 res% = dll_call3("ResizeAnimatedPicture",AP%,w%,h%) res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_1_1_1_2.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_1_1_1_3.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_1_1_1_4.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_1_1_1_5.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_1_1_1_6.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
if 1=2 nom$ = "marche_2_1_1_1.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_2_1_1_2.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_2_1_1_3.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_2_1_1_4.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_2_1_1_5.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_3_1_1_1.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_3_1_1_2.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_3_1_1_3.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$))
nom$ = "marche_3_1_1_4.jpg" res% = dll_call2("LoadImageToAnimatedPicture",AP%,adr(nom$)) end_if
res% = dll_call4("ShowAnimatedPicture",AP%,1,1,200)
while scancode<>27 pause 1000 end_while
res% = dll_call1("ClearAnimatedPicture",AP%) res% = dll_call1("DeleteAnimatedPicture",AP%)
end
Vous trouverez les images dans mon WebDav, dossier DLLs\AnimatedPicture\. Voici d'ailleurs un outil de découper une planche d'images en x lignes et y colonnes, en créant un fichier individuel pour chaque section: - Code:
-
' puzzeliser.bas
label ouvrir, change, go
dim nom$, w%, h%, w1%, h1%, w2%, h2%, res%, lig%, col%, mlig%, mcol% dim x0%,y0%,x1%,y1%, nom1$, nom2$, ext1$, present%, temp%
full_space 0 open_dialog 1 button 10 : top 10,10 : left 10,10 : caption 10,"Ouvrir" : on_click 10,ouvrir
picture 11 : top 11,40 : left 11,10 : width 11,600 : height 11,400 : stretch_on 11 image 12 : image 13
alpha 20 : top 20,10 : left 20,150 : caption 20,"Largeur:" edit 21 : top 21,10 : left 21,210 : width 21,80 : inactive 21 alpha 22 : top 22,10 : left 22,350 : caption 22,"Hauteur:" edit 23 : top 23,10 : left 23,410 : width 23,80 : inactive 23
alpha 40 : top 40,40 : left 40,650 : caption 40,"Nombre de lignes:" spin 41 : top 41,40 : left 41,760 : width 41,60 : min 41,1 : max 41,32 on_change 41,change alpha 42 : top 42,70 : left 42,650 : caption 42,"Nombre de colonnes:" spin 43 : top 43,70 : left 43,760 : width 43,60 : min 43,1 : max 43,32 on_change 43,change position 41,1 position 43,1
button 50 : top 50,100 : left 50,760 : caption 50,"Couper" on_click 50,go
picture 60 : top 60,250 : left 60,650 : width 60,300 : height 60,200 : stretch_on 60 picture 61 : hide 61 dll_on "KGF.dll" present% = 0
end
ouvrir: nom$ = file_name$(1) if nom$="_" then return if file_exists(nom$)=0 then return present% = 0 res% = dll_call1("LoadAnyImageFile",adr(nom$)) res% = dll_call3("AnalyzeImageFile",adr(nom$),adr(w%),adr(h%)) if res%=1 then return clipboard_paste 13 clipboard_paste 12 clipboard_paste 11 text 21,str$(w%) text 23,str$(h%) ext1$ = file_extract_extension$(nom$) nom1$ = left$(nom$,len(nom$) - len(ext1$)) present% = 1 gosub change return change: if present%=0 then return clipboard_copy 13 clipboard_paste 11 mlig% = position(41) mcol% = position(43) 2d_target_is 11 2d_pen_color 255,0,0 2d_pen_width 5 if mlig%>1 for lig%=1 to mlig%-1 temp% = lig%*(h%/mlig%) 2d_line 0,temp%,w%,temp% display pause 100 next lig% end_if if mcol%>1 for col%=1 to mcol%-1 temp% = col%*(w%/mcol%) 2d_line temp%,0,temp%,h% display next col% end_if 2d_pen_color 0,0,0 return go: if present%=0 then return mlig% = position(41) mcol% = position(43) if (mlig%=1) and (mcol%=1) then return clipboard_copy 13 clipboard_paste 11 width 61,w%/mcol% height 61,h%/mlig% width 60,width(11)/mcol% height 60,height(11)/mlig% for lig%=1 to mlig% for col%=1 to mcol% 2d_target_is 11 x0% = (col%-1)*(w%/mcol%) y0% = (lig%-1)*(h%/mlig%) x1% = col%*(w%/mcol%) - 1 y1% = lig%*(h%/mlig%) - 1 2d_image_copy 12,x0%,y0%,x1%,y1% 2d_target_is 61 color 61,255,255,255 2d_image_paste 12,0,0 clipboard_copy 61 clipboard_paste 60 nom2$ = nom1$ + "_"+str$(lig%)+"_"+str$(col%)+".jpg" res% = dll_call1("SaveAnyImageFile",adr(nom2$)) message nom2$ next col% next lig% return
Dernière édition par Klaus le Dim 4 Juin 2017 - 18:08, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 4 Juin 2017 - 14:27 | |
| Je vais tester mais ton explication me fait penser au gif animé... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: KGF_dll - nouvelles versions Dim 4 Juin 2017 - 16:07 | |
| Ton webdav est inaccessible. Pour le 2ème code, il y a une erreure en ligne 93 : une parenthèse ouvrante en trop.
EDIT :
J'ai testé avec une image à moi ===> OK ! Bravo 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 Juin 2017 - 18:09 | |
| Merci, Papydall. J'ai corrigé dans le post. C'était une modif de dernière minute... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 13 Juin 2017 - 0:25 | |
| Nouvelle version: KGF.dll V7.73 du 13/06/2017
Nouveautés: - WriteTextOverPicture: prise en compte correcte de la taille de la police
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Juin 2017 - 12:41 | |
| Nouvelle version: KGF.dll V7.74 du 14/06/2017
Nouveautés: - ExecuteProgram: ajouter automatiquement les guillemets autour du nom du fichier si le paramètre n'est pas un nom de fichier, le prendre tel quel
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 14 Juin 2017 - 12:55 | |
| J' ai toujours un res% à -1 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Juin 2017 - 12:58 | |
| Recharge. C'est corrigé et ça fonctionne chez moi. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 14 Juin 2017 - 13:05 | |
| dll chargé sur le webdev. | |
| | | 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
| |
| |
| |