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 |
---|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Lun 1 Mai 2017 - 22:54 | |
| Merci pour ta réponse Klaus. Je croyait bêtement que tout se passé par le handle de l'objet Synedit et donc qu'il suffisait de prendre le handle pour utiliser les fonctions de KGF. Dommage, ça aurait donné des possibilités intéressantes ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 2 Mai 2017 - 1:06 | |
| Nouvelle version: KGF.dll V7.56 du 01/05/2017 Nouveautés: - suite de restructuration générale (purement technique, sans incidence sur les fonctionnalités) - SyneditFunction: nouveau code 44 - positionner la ligne par% en première ligne affichée - SyneditConfigureHighlighter: possibiité de donner les couleurs dous forme de $BBGGRR en hexaModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. On peur spécifier la couleur, par exemple pour les mots-clé, de la manière suivante: - Code:
-
couleur$ = "Bleu" res% = dll_call4("SyneditConfigureHighlighter",SE%,4,adr(couleur$)) ou - Code:
-
couleur$ = "$FF0000" res% = dll_call4("SyneditConfigureHighlighter",SE%,4,adr(couleur$)) Ces deux appels sont équivalents. Le code 44 de SyneditFunction permet de "scroller" le texte d'une fenêtre Synedit de sorte que la ligne par% soir la première ligne affichée (si c'est possible): - Code:
-
positionner la ligne 2035 en haut de la fenêtre d'affichage lig% = dll_call3("SyneditFunction",SE%,44,2035)
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 2 Mai 2017 - 2:14 | |
| Il est un peu tard pour que je teste tout cela maintenant mais je charge la dll et promis je regarderai demain, enfin tout à l' heure. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 2 Mai 2017 - 10:30 | |
| Nouvelle version: KGF.dll V7.57 du 02/05/2017
Nouveautés: - suite de restructuration générale (purement technique, sans incidence sur les fonctionnalités) - SyneditFunction: nouveau code 45 - retourner les résultats de recherche globale dans un mémo
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
Le mémo peut être caché, mais doit avoir l'attribut BAR_BOTH. Si aucun résultat de recherche rapide n'est disponible, le mémo résultant sera vide. Chaque ligne de résultat a le format suivent: n: text n est le numéro de ligne
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 2 Mai 2017 - 15:08 | |
| Nouvelle version: KGF.dll V7.58 du 02/05/2017Nouveautés: - suite de restructuration générale (purement technique, sans incidence sur les fonctionnalités) - SyneditFunction: nouveau code 46 - effectuer une recherche globale par programmeModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cette nouveauté comple une lacune dans la gestion des recherches globales. Jusqu'à la version précédente, on pouvait l'initier au clavier, en lançant une recherche et en cliquant intentionnellement sur le bouton "Chercher toutes les occurrences". Maintenant, on peut effectuer cette fonction par programme, sans faire apparaître la liste des résultats à l'écran, mais ces résultats restent mémorisés jusqu'à la recherche globale suivante. Et on peut utiliser le code 45 pour récupérer les résultats dans un mémo (possiblement caché, voir la version précédente ci-dessus). Si l'on utilise le code 46 avec par%=0, alors les résultats de la dernière recherche globale seront (ré)affichés. Pour effectuer une recherche globale par programme, il faut constituer un tableau d'entiers de 4 cellules dont l'adresse sera passée en paramètre. Ce tableau doit contenir les informations suivantes: - Code:
-
indice utilisation =============================================================== 0 longueur du tableau (toujours 16) 1 adr(text$) chaîne de caractères contenant le critère ou le masque 2 mode 0=normal (text$ est le critère) 1=spécial (text$ est le masque) 3 casse 0=normal (insensible à la casse) 1=sélectif (sensible à la casse) Exemple de recherche du critère "opt$": - Code:
-
dim SearchParam%(3), SearchText$ SearchText$ = "opt$" SearchParam%(0) = 16 SearchParam%(1) = adr(SearchText$) SearchParam%(2) = 0 SearchParam%(3) = 0 res% = dll_call3("SyneditFunction",SE%(act%),46,adr(SearchParam%)) Exemple de recherche avec le masque "end_*" (trouve simutanément end_sub, end_while, end_select): - Code:
-
dim SearchParam%(3), SearchText$ SearchText$ = "end_*" SearchParam%(0) = 16 SearchParam%(1) = adr(SearchText$) SearchParam%(2) = 1 SearchParam%(3) = 0 res% = dll_call3("SyneditFunction",SE%(act%),46,adr(SearchParam%)) Pour récupérer la liste des résultats: - Code:
-
memo 1234 : hide 1234 : bar_both 1234 ... res% = dll_call3("SyneditFunction",SE%(act%),45,handle(1234)) message "Nombre: "+str$(res%)+chr$(13)+chr$(10)+text$(1234) | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 3 Mai 2017 - 0:52 | |
| Wahaou... Je m' absente quelques heures et je suis à la ramasse... Bon, ben, je me met à jour et je vais essayer de mettre tout çà en application. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 3 Mai 2017 - 1:17 | |
| Je crois que ça va te plaire. Elles sont puissantes, ces possibilités ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Mer 3 Mai 2017 - 6:42 | |
| Elle semblent rudement intéressantes toutes ses nouvelles fonctions Klaus... Je suis passé à coté hier sans les remarquer ! Je vais m'en servir dans GPP pour reprendre mon système perso de recherche et remplacement. Ça simplifiera encore un peu le code. Merci. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 7 Mai 2017 - 21:05 | |
| Nouvelle version: KGF.dll V7.59 du 07/05/2017
Nouveautés: - suite de restructuration générale (purement technique, sans incidence sur les fonctionnalités) - suppression de la fonction CompilePanoramicToEXE - SearchStringInTextFile: suppression de CR LF en trop pour résultats dans Combo ou List
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 Lun 8 Mai 2017 - 1:51 | |
| Nouvelle version: KGF.dll V7.60 du 09/05/2017Nouveautés: - suite de restructuration générale (purement technique, sans incidence sur les fonctionnalités) - nouvelle fonction: ExecuteWithPanoramicEditorModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cette fonction réalkise le travail de l'utilitaire Lanceur_Panoramic_Editor.exe, disponible sur mon WebDav dans le dossier Outils\. Elle permet d'exécuter une programme source Panoramic directement via l'editeur Panoramic_Editor.exe, avec certaines options. Voici une démo. Elle affiche un mémo dans lequel on peut saisir un code Panoramic (on pourrait prendre un objet Synedit à la place...). Le bouton "Lancer" exécute ce code via Panoramic_Editor, avec certaines options fixés dans le code. Voir la documentation, dans la section "Scripts avec Panoramic". - Code:
-
' test_ExecuteWithPanoramicEditor.bas
label lancer dim res%, source$, larg%, haut%, att%, options% source$ = "MonTest_ExecuteWithPanoramicEditor.bas"
memo 1 : full_space 1 : bar_both 1 : height 1,height(1)-30 button 2 : top 2,height(1)+2 : left 2,30 : caption 2,"Lancer" : on_click 2,lancer if file_exists(source$)=1 then file_load 1,source$
dll_on "KGF.dll"
end
lancer: if file_exists(source$)=1 then file_delete source$ file_save 1,source$
' options: OR binaire de: 1=RUN 2=STAY 4=DEBUG options% = 1 : ' + 4 si l'on veut des messages de traçage... larg% = -1 haut% = -1 att% = 3000 res% = dll_call5("ExecuteWithPanoramicEditor",adr(source$),larg%,haut%,att%,options%) message "Résultat: "+str$(res%) return
| |
| | | 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 Mai 2017 - 12:01 | |
| Nouvelle version: KGF.dll V7.61 du 11/05/2017
Nouveautés: - fin de restructuration générale (purement technique, sans incidence sur les fonctionnalités) - ExecuteWithPanoramicEditor: gérer correctement les noms longs pour le fichier source
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 Mar 16 Mai 2017 - 12:12 | |
| Nouvelle version: KGF.dll V7.62 du 16/05/2017
Nouveautés: - ExecuteWithPanoramicEditor: adaptation à la dernière version de Panoramic_Editor du 15/5/2017: retirer me ".bas" du nom du process lancé
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 19 Mai 2017 - 1:00 | |
| Nouvelle version: KGF.dll V7.63 du 18/05/2017Nouveautés: - nouvel objet: SpiderWebModules modifiés: KGF.dll KGF.dllLa doc et les sources sont à jour. Ce nouvel objet permet d'afficher (et d'enregistrer !) une nouvelle forme d'histogramme, en forme de toile d'araignée. Elle sert à afficher une ou plusieurs séries de valeurs d'un même nombre d'éléments, afin de les comparer. Les valeurs sont des pourcentages (dans l'intervalle [0..100]) sous forme de nombres entiers. Voici à quoi ça ressemble: Et voici le programme qui produit cela: - Code:
-
' test_SpiderWeb.bas
label creer, supprimer, versfichier, versclip dim res%, SW%, m1%, s$, serie1%(4), serie2%(4), ID1%, ID2% m1% = -1 serie1%(0) = 80 serie1%(1) = 75 serie1%(2) = 100 serie1%(3) = 50 serie1%(4) = 100 serie2%(0) = 90 serie2%(1) = 100 serie2%(2) = 100 serie2%(3) = 86 serie2%(4) = 65
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
save_dialog 11
end
creer: ' créer l'objet SpiderWeb, retourner l'identifiant dans SW% SW% = dll_call4("CreateSpiderWeb",handle(0),192,214,255) ' faire un FULL_SPACE du SW% ' res% = dll_call6("SpiderWebGeometry",SW%,1,m1%,m1%,m1%,m1%) ' donner les dimensions du SW% res% = dll_call6("SpiderWebGeometry",SW%,1,10,60,450,500) ' définir le nombre d'axes res% = dll_call2("SpiderWebAxisCount",SW%,5) ' retourner le nombre d'axes définis ' res% = dll_call2("SpiderWebAxisCount",SW%,0) ' définir les libellés des axes s$ = "Vitesse" res% = dll_call4("SpiderWebAxisLabel",SW%,0,1,adr(s$)) s$ = "Taille" res% = dll_call4("SpiderWebAxisLabel",SW%,0,2,adr(s$)) s$ = "Volume" res% = dll_call4("SpiderWebAxisLabel",SW%,0,3,adr(s$)) s$ = "Facilité" res% = dll_call4("SpiderWebAxisLabel",SW%,0,4,adr(s$)) s$ = "Clarté" res% = dll_call4("SpiderWebAxisLabel",SW%,0,5,adr(s$))
' définir deux séries de valeurs s$ = "Série 1" ID1% = dll_call4("SpiderWebSerie",SW%,5,adr(s$),adr(serie1%)) s$ = "Série 2" ID2% = dll_call4("SpiderWebSerie",SW%,5,adr(s$),adr(serie2%)) ' défnir les zones pour le graphisme et les légendes res% = dll_call6("SpiderWebArea",SW%,1,10,10,400,0) : ' graphismes res% = dll_call6("SpiderWebArea",SW%,2,10,420,400,200) : ' légendes ' définir épaisseurs de trait et couleurs des séries res% = dll_call6("SpiderWebSerieAttributes",SW%,1,2,255,0,0) res% = dll_call6("SpiderWebSerieAttributes",SW%,2,4,0,0,255) ' autoriser ou non les bordures (graphismes=oui, légendes=non) res% = dll_call3("SpiderWebBorders",SW%,1,0) ' afficher tout res% = dll_call2("SpiderWebUpdate",SW%,1) return supprimer: SW% = dll_call1("DeleteSpiderWeb",SW%) return
versfichier: if SW%=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("SpiderWebSaveToFile",SW%,adr(s$)) if res%=0 then message "L'image est dans le fichier." return
versclip: if SW%=0 then return res% = dll_call2("SpiderWebSaveToFile",SW%,0) if res%=0 then message "L'image est dans le presse-papier." return
Avec la possibilité d'enregistrer l'mage dans un fichier BMP, JPG ou PNG, ou de copier l'image dans le presse-papier. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 21 Mai 2017 - 1:02 | |
| Nouvelle version: KGF.dll V7.64 du 20/05/2017Nouveautés: - nouvel objet: HistogramModules modifiés: KGF.dll KGF.dllLa doc et les sources sont à jour. Ce nouvel objet (qui pourra être étendu à de nouvelles fonctionnalités plus tard) implémente l'affichage d'histogrammes, selon un style paramétrable. Pour le moment, on a les styles Lignes, Barres 2D, Barred 3D et Cyindres. Chaque aspect est paramétrable (dimensions, couleurs, libellés, ...). On peut sauvegarder un tel graphisme dans le presse-papier ou dans un fichier BMP, JPG ou PNG. Avec l'objet SpiderWeb de la version précédente, on dispose maintenant d'un ensemble d'outils d'affichage de données numériques assez varié. Voici un programme de démo. Il montre les mêmes données que celles de la démo du SpiderWeb de la version précédente, mais avec les 4 nouvelles présentations: - Code:
-
' test_Histogramme2D3D.bas
label creer, supprimer, versfichier, versclip dim res%, HG%, m1%, s$, serie1%(4), serie2%(4), ID1%, ID2%, model% m1% = -1 serie1%(0) = 80 serie1%(1) = 75 serie1%(2) = 100 serie1%(3) = 50 serie1%(4) = 100 serie2%(0) = 90 serie2%(1) = 100 serie2%(2) = 100 serie2%(3) = 86 serie2%(4) = 65
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,100 item_add 6,"Par lignes" item_add 6,"Par barres 2D" item_add 6,"Par barres 3D" item_add 6,"Par cylindres" res% = dll_call2("SelectComboBoxItem",handle(6),1)
save_dialog 11
end
creer: if HG%<>0 then return model% = item_index(6) ' 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" res% = dll_call4("HistogramAxisLabel",HG%,0,1,adr(s$)) : ' abscisse s$ = "Résultat" res% = dll_call4("HistogramAxisLabel",HG%,0,2,adr(s$)) : ' ordonnée s$ = "Années" 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 s$ = "Série 1" ID1% = dll_call4("HistogramSerie",HG%,5,adr(s$),adr(serie1%)) s$ = "Série 2" ID2% = dll_call4("HistogramSerie",HG%,5,adr(s$),adr(serie2%)) ' 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 "ligne" case 2 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,0) : ' pour "barre 2D" case 3 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,25) : ' pour "barre 3D" case 4 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,0) : ' pour "cylindre" 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)
' 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
Et voici les résultats: Type "Ligne": Type "Barre 2D": Type "Barre 3D": Type "Cylindres": | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Dim 21 Mai 2017 - 10:03 | |
| Très intéressant cet objet Klaus. J'avais commençais il y a 2-3 ans, un programme englobant de nombreuses données dans la perspective de présenter plusieurs statistiques. Mais vue la complexité de l'affaire, je l'avais mis en stand-by. Voila un outil qui pourrait être bien utile... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Dim 21 Mai 2017 - 16:43 | |
| Dans les grand classiques, il te reste les camemberts et un truc qui s'appelle les diagrammes à bulles je crois qui fait des bulles des données en augmentant la taille du rond et les place en abscisses et en ordonnées selon certains critères (c'est le truc que j'ai vu en gestion de projets pour les prioriser et aider à prendre les décisions) | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Mai 2017 - 18:14 | |
| Très intéressant tout çà 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 Lun 22 Mai 2017 - 16:49 | |
| Nouvelle version: KGF.dll V7.65 du 22/05/2017Nouveautés: - CreateHistogram: nouveau modèle 5=Histogramme à bullesModules modifiés: KGF.dll KGF.dllLa doc et les sources sont à jour. Ce type d'histogramme est particulier. Il a besoin d'exactement 3 séries de données. La première contient les valeurs de l'axe Y, la deuxième les valeurs de l'axe X, et la troisième la grosseur des bulles. Ce diagramme est souvent utilisé pour mettre en évidence une troisième variable corrélée aux deux premières séries, comme un écart-type, un pourcentage etc. Voici le programme de démo, avec les 5 types d'histogramme (ligne, barre 2D, barre 3D, cylindre et bulles). On peut maintenant saisir des valeurs pour les deux séries. En cas de modèle "bulles", la troisième est calculée automatiquement par le programme de démo, en tant que pourcentage d'écart de la "réalisation" par rapport à la "présision". La plus petite bulle indique donc la réalisation collant le mieux aux prévisions. - Code:
-
' test_Histogramme2D3D.bas
label creer, supprimer, versfichier, versclip dim res%, HG%, m1%, s$, serie1%(4), serie2%(4), serie3%(4) dim ID1%, ID2%, ID3%, model%, i% m1% = -1
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,100 item_add 6,"Par lignes" item_add 6,"Par barres 2D" item_add 6,"Par barres 3D" item_add 6,"Par cylindres" item_add 6,"A Bulles" 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
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%=5 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 ' 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%=5 then s$ = "Prévision" res% = dll_call4("HistogramAxisLabel",HG%,0,1,adr(s$)) : ' abscisse s$ = "Résultat" if model%=5 then s$ = "Réalisation" res% = dll_call4("HistogramAxisLabel",HG%,0,2,adr(s$)) : ' ordonnée s$ = "Profondeur" if model%=5 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 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%)) if model%=5 : ' 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 "ligne" case 2 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,0) : ' pour "barre 2D" case 3 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,25) : ' pour "barre 3D" case 4 res% = dll_call4("HistogramSerieGeometry",HG%,80,25,0) : ' pour "cylindre" case 5 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%=5 : ' type "Bulles" res% = dll_call6("HistogramSerieAttributes",HG%,3,4,255,255,0) end_if
' 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
Et voici le résultat: Le rond noir à côté du libellé "Volume" indique une valeur "zéro" pour cet élément (réalisation conforme à la prévision). Or, on rond de rayon 0 ne serait pas visible. J'ai donc choisi de symboliser ce cas par un point noir. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Lun 22 Mai 2017 - 22:28 | |
| | |
| | | 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 Mai 2017 - 0:53 | |
| Nouvelle version: KGF.dll V7.66 du 23/05/2017Nouveautés: - CreateHistogram: -- renumérotation des modèles -- implémentation du modèle de nuage de points -- renommage du modèle "Ligne" en "Ligne 2D" -- création d'un modèle "Ligne 3D"Modules modifiés: KGF.dll KGF.dllLa doc et les sources sont à jour. On a maintenant les modèles suivants (hormis la "toile d'arraignée" qui est implémentée par l'objet SpiderWeb): 1 = nuage de points 2 = lignes 2D 3 = lignes 3D 4 = barres 2D 5 = barres 3D 6 = cylindres 7 = bullesVoici le programme de démo. Un petit bouton "(1) -> (2)" a fait son apparition qui permet de copier automatiquement la série 1 dans la série 2. - Code:
-
' test_Histogramme2D3D.bas
label creer, supprimer, versfichier, versclip, copier dim res%, HG%, m1%, s$, serie1%(4), serie2%(4), serie3%(4) dim ID1%, ID2%, ID3%, model%, i%, model_bulles% m1% = -1 model_bulles% = 7
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,100 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" 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
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 ' 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 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%)) 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
' 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
Nuage de points: Lignes 3D: | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Mar 23 Mai 2017 - 6:58 | |
| Alors là ça devient carrément pro ! Bravo Klaus. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 23 Mai 2017 - 12:39 | |
| 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 24 Mai 2017 - 10:57 | |
| Nouvelle version: KGF.dll V7.67 du 24/05/2017Nouveautés: - CreateHistogram: -- nouveau modèle: Camembert 2DModules modifiés: KGF.dll KGF.dllLa doc et les sources sont à jour. On a maintenant les modèles suivants (hormis la "toile d'arraignée" qui est implémentée par l'objet SpiderWeb): 1 = nuage de points 2 = lignes 2D 3 = lignes 3D 4 = barres 2D 5 = barres 3D 6 = cylindres 7 = bulles 8 = camembert 2DUne seule série de valeurs est à créer. On indique aussi les couleurs pour chaque valeur dans la série. Optionnellement, on peut mettre un segment en valeur en le décentrant légèrement. Voici le programme de démo: - Code:
-
' test_Histogramme2D3D.bas
label creer, supprimer, versfichier, versclip, copier dim res%, HG%, m1%, s$, serie1%(4), serie2%(4), serie3%(4), colors%(4) dim ID1%, ID2%, ID3%, model%, i%, model_bulles%, model_camembert% 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
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
' 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
Et le résultat pour un camembert dont de deuxième segment est mis en valeur:
Dernière édition par Klaus le Mer 24 Mai 2017 - 12:37, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 24 Mai 2017 - 11:02 | |
| Bravo Klaus ! Maintenant qu' on a le fromage, il ne manque plus qu' un bout de pain... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 24 Mai 2017 - 12:46 | |
| ... et le vin rouge ! En tout cas, merci pour les fleurs ! Petite amélioration, sans changement de version: dans le cas du camembert, le libellé du segment mis en valeur apparaît en gras et en italique, et son trait dans les légendes est plus épais (voir capture ci-dessus qui est actualisée). EDITCe qui est intéressant dans ces deux objets SpiderWeb et Histogram, c'est que je les ai implémentées intégralement KGF.dll contient déjà un aurte moyen de faire des histogrammes (voir ici), mais cela fait appel à un logiciel tiers freeware) que j'ai intégré. Les nouveaux objets sont entièrement écrits par moi et j'en ai donc la maîtrise totale. | |
| | | 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
| |
| |
| |