
Flype - UserLibraries pour PureBasic 4.0
ca remarche si on remplace le code par celui-ci :Progi1984 a écrit :Trés bon boulot, ca sera surement utile un jour mais pas pour l'instant !
Sinon le tutorial 6 ne fonctionne pas
est ce que cela a été dur de traduire du PowerBasic ?
Code : Tout sélectionner
;-
;- RMCHART.DLL - TUTORIAL 06
;-
XIncludeFile "../rmchart.pbi"
;-
#ID_WINDOW = 1
#ID_CHART = 1
#ID_REGION = 1
;-
If RMC_INIT()
If OpenWindow(#ID_WINDOW, 0, 0, 640, 480, "RMCHART.DLL", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If RMC_CreateChart(WindowID(#ID_WINDOW), #ID_CHART, 0, 0, 640, 480) = #RMC_NO_ERROR
RMC_AddRegion(#ID_CHART, 5, 5, -5, -5)
RMC_AddGrid(#ID_CHART, #ID_REGION)
RMC_AddXAxis(#ID_CHART, #ID_REGION, #RMC_XAXISBOTTOM)
RMC_AddYAxis(#ID_CHART, #ID_REGION, #RMC_YAXISLEFT)
RMC_AddXYSeries(#ID_CHART, #ID_REGION, ?Series1X, 10, ?Series1Y, 10, #Black, #RMC_XY_LINE, #RMC_LSTYLE_SPLINE)
RMC_AddXYSeries(#ID_CHART, #ID_REGION, ?Series2X, 10, ?Series2Y, 10, #Red, #RMC_XY_LINE_DASH, #RMC_LSTYLE_STAIR)
RMC_AddXYSeries(#ID_CHART, #ID_REGION, ?Series3X, 10, ?Series3Y, 10, #Green, #RMC_XY_CABLE, #RMC_LSTYLE_LINE)
RMC_Draw(#ID_CHART)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
EndIf
EndIf
;-
DataSection
Series1X: Data.d 10,20,20,30,40,50,60,70,80,90
Series1Y: Data.d 10,20,30,30,30,40,90,65,80,10
Series2X: Data.d 23,33,45,62,69,74,85,90,92,99
Series2Y: Data.d 08,15,25,48,68,55,53,42,50,60
Series3X: Data.d 18,23,45,62,69,74,85,90,92,99
Series3Y: Data.d 50,55,60,55,60,55,75,45,55,60
EndDataSection
;-
NB:
voyez, on peut utiliser les Data de purebasic, des tableaux, des blocs mémoires pour stocker les coordonnées...
Bonsoir à tous.
Bon voilà ma petite contribution avec un exemple de graphique un peu plus abouti. Je trouve cette lib très bien et d'un emploi assez facile quand on à compris comment ça marche.
Une petite astuce, utilisez le programme rmcdesigner pour creer vos graphiques et sauvegardez le source au format Visual Basic. Après c'est facile de récupérer les paramètres (quelques copier coller) et de les adapter à Pure basic.
Par contre, je n'ai pas réussi à creer la légende du graph. Le programme plante quand j'essaye d'en créer une.
Peut-être que Flype à un exemple ?
Bon voici un exemple en PB:
Les courbes rouges et vertes sont sensé donner les températures du matin et de l'après midi et la courbe jaune le degrès d'humidité, mais sans légende, c'est moins évident.
Bon, je vais essayer de voir avec la doc même si je suis un peut fâché avec la langue anglaise...
A+
André.
Bon voilà ma petite contribution avec un exemple de graphique un peu plus abouti. Je trouve cette lib très bien et d'un emploi assez facile quand on à compris comment ça marche.
Une petite astuce, utilisez le programme rmcdesigner pour creer vos graphiques et sauvegardez le source au format Visual Basic. Après c'est facile de récupérer les paramètres (quelques copier coller) et de les adapter à Pure basic.
Par contre, je n'ai pas réussi à creer la légende du graph. Le programme plante quand j'essaye d'en créer une.

Peut-être que Flype à un exemple ?
Bon voici un exemple en PB:
Code : Tout sélectionner
XIncludeFile "RMChart.pbi"
If Not RMC_INIT()
MessageRequester("Error", "Can't initialized RMCHART.DLL", #MB_ICONERROR)
End
EndIf
#ChartID = 1
#RegionID = 1
flags = #PB_Window_SystemMenu
flags | #PB_Window_SizeGadget
flags | #PB_Window_ScreenCentered
flags | #PB_Window_MinimizeGadget
flags | #PB_Window_MaximizeGadget
#LabelAxe="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*31"
tLineSeries.tRMC_LINESERIES
tLineSeries\nType.l =#RMC_LINE
tLineSeries\nStyle.l =#RMC_LINE_CABLE_SHADOW
tLineSeries\nLineStyle.l =#RMC_LSTYLE_LINE_AREA
tLineSeries\nIsLucent.l =#False
tLineSeries\nColor.l =#ColorSpringGreen
tLineSeries\nSeriesSymbol.l =#RMC_SYMBOL_BULLET
tLineSeries\nWhichDataAxis.l =1
tLineSeries\nValueLabelOn.l =#RMC_VLABEL_NONE
tLineSeries\nHatchMode.l =#RMC_HATCHBRUSH_OFF
tLineSeries2.tRMC_LINESERIES
tLineSeries2\nType.l =#RMC_LINE
tLineSeries2\nStyle.l =#RMC_LINE_CABLE_SHADOW
tLineSeries2\nLineStyle.l =#RMC_LSTYLE_LINE
tLineSeries2\nIsLucent.l =#False
tLineSeries2\nColor.l =#ColorRed
tLineSeries2\nSeriesSymbol.l =#RMC_SYMBOL_BULLET
tLineSeries2\nWhichDataAxis.l =1
tLineSeries2\nValueLabelOn.l =#RMC_VLABEL_NONE
tLineSeries2\nHatchMode.l =#RMC_HATCHBRUSH_OFF
tLineSeries3.tRMC_LINESERIES
tLineSeries3\nType.l =#RMC_LINE
tLineSeries3\nStyle.l =#RMC_LINE_CABLE_SHADOW
tLineSeries3\nLineStyle.l =#RMC_LSTYLE_LINE
tLineSeries3\nIsLucent.l =#False
tLineSeries3\nColor.l =#ColorBananaYellow
tLineSeries3\nSeriesSymbol.l =#RMC_SYMBOL_BULLET
tLineSeries3\nWhichDataAxis.l =2
tLineSeries3\nValueLabelOn.l =#RMC_VLABEL_NONE
tLineSeries3\nHatchMode.l =#RMC_HATCHBRUSH_OFF
Dim aData.d(30)
For n=0 To 30
aData(n)=Random(10)+20
Next n
Dim aData2.d(30)
For n=0 To 30
aData2(n)=Random(15)
Next n
Dim aData3.d(30)
For n=0 To 30
aData3(n)=Random(15)+60
Next n
If OpenWindow(0, 0, 0, 800, 600,"Graphique températures", flags)
SetWindowColor(0, $FFDDDD)
RMC_CreateChart(WindowID(0), #ChartID, 10,10,600, 450,#ColorLavender , #RMC_CTRLSTYLEFLAT,#False,"", "Tahoma")
RMC_AddRegion(#RegionID, 5, 5, -5, -5,"")
RMC_AddGrid (#ChartID, #RegionID, #ColorBeige, #True, 0, 0, 0, 0, #RMC_BICOLOR_NONE)
RMC_AddDataAxis(#ChartID, #RegionID,#RMC_DATAAXISLEFT,-15, 40, 11, 8,0,0, #RMC_LINESTYLESOLID, 0, "°", "Températures")
RMC_AddDataAxis(#ChartID, #RegionID,#RMC_DATAAXISRIGHT,0,100, 11, 8,0,0, #RMC_LINESTYLESOLID, 0, "%", "Humidité")
RMC_AddLabelAxis(#ChartID, #RegionID,#LabelAxe,1, 31,#RMC_LABELAXISBOTTOM, 8,0,#RMC_TEXTUPWARD,0,#RMC_LINESTYLESOLID,"Jours Mois")
RMC_AddLineSeriesI(#ChartID, #RegionID,@aData.d(0),31,@adata.d(0),1,tLineSeries)
RMC_AddLineSeriesI(#ChartID, #RegionID,@aData2.d(0),31,@adata2.d(0),1,tLineSeries2)
RMC_AddLineSeriesI(#ChartID, #RegionID,@aData3.d(0),31,@adata3.d(0),1,tLineSeries3)
RMC_Draw(#ChartID)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
End
Bon, je vais essayer de voir avec la doc même si je suis un peut fâché avec la langue anglaise...

A+
André.
Bonjour à tous.
Ben, j'ai résolu le problème de la légende pour les graphiques qui utilisent plusieurs courbes pour le même graph. En fait c'était simple, mais je ne comprend pas pourquoi rmcdesigner a planté deux lors de mes essais. Depuis, plus de plantages.
En fait, je me suis servi d'un exemple dans le dossier rmc du pack de Flype pour comprendre les commandes qui sont en fait ultra simples. Il suffit de charger ce fichier dans l'éditeur pour voir comment il faut faire.
Donc voilà la dernière version du programme en Pure:
Voilà... Encore un grand merci à Flype pour son travail c'est vraiment super ! 
A+
André.
Ben, j'ai résolu le problème de la légende pour les graphiques qui utilisent plusieurs courbes pour le même graph. En fait c'était simple, mais je ne comprend pas pourquoi rmcdesigner a planté deux lors de mes essais. Depuis, plus de plantages.

En fait, je me suis servi d'un exemple dans le dossier rmc du pack de Flype pour comprendre les commandes qui sont en fait ultra simples. Il suffit de charger ce fichier dans l'éditeur pour voir comment il faut faire.

Donc voilà la dernière version du programme en Pure:
Code : Tout sélectionner
XIncludeFile "RMChart.pbi"
If Not RMC_INIT()
MessageRequester("Error", "Can't initialized RMCHART.DLL", #MB_ICONERROR)
End
EndIf
#ChartID = 1
#RegionID = 1
flags = #PB_Window_SystemMenu
flags | #PB_Window_SizeGadget
flags | #PB_Window_ScreenCentered
flags | #PB_Window_MinimizeGadget
flags | #PB_Window_MaximizeGadget
#LabelAxe="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*31"
tLineSeries.tRMC_LINESERIES
tLineSeries\nType.l =#RMC_LINE
tLineSeries\nStyle.l =#RMC_LINE_CABLE_SHADOW
tLineSeries\nLineStyle.l =#RMC_LSTYLE_LINE_AREA
tLineSeries\nIsLucent.l =#False
tLineSeries\nColor.l =#ColorSpringGreen
tLineSeries\nSeriesSymbol.l =#RMC_SYMBOL_BULLET
tLineSeries\nWhichDataAxis.l =1
tLineSeries\nValueLabelOn.l =#RMC_VLABEL_NONE
tLineSeries\nHatchMode.l =#RMC_HATCHBRUSH_OFF
tLineSeries2.tRMC_LINESERIES
tLineSeries2\nType.l =#RMC_LINE
tLineSeries2\nStyle.l =#RMC_LINE_CABLE_SHADOW
tLineSeries2\nLineStyle.l =#RMC_LSTYLE_LINE
tLineSeries2\nIsLucent.l =#False
tLineSeries2\nColor.l =#ColorRed
tLineSeries2\nSeriesSymbol.l =#RMC_SYMBOL_BULLET
tLineSeries2\nWhichDataAxis.l =1
tLineSeries2\nValueLabelOn.l =#RMC_VLABEL_NONE
tLineSeries2\nHatchMode.l =#RMC_HATCHBRUSH_OFF
tLineSeries3.tRMC_LINESERIES
tLineSeries3\nType.l =#RMC_LINE
tLineSeries3\nStyle.l =#RMC_LINE_CABLE_SHADOW
tLineSeries3\nLineStyle.l =#RMC_LSTYLE_LINE
tLineSeries3\nIsLucent.l =#False
tLineSeries3\nColor.l =#ColorBananaYellow
tLineSeries3\nSeriesSymbol.l =#RMC_SYMBOL_BULLET
tLineSeries3\nWhichDataAxis.l =2
tLineSeries3\nValueLabelOn.l =#RMC_VLABEL_NONE
tLineSeries3\nHatchMode.l =#RMC_HATCHBRUSH_OFF
Dim aData.d(30)
For n=0 To 30
aData(n)=Random(15)
Next n
Dim aData2.d(30)
For n=0 To 30
aData2(n)=Random(10)+20
Next n
Dim aData3.d(30)
For n=0 To 30
aData3(n)=Random(15)+60
Next n
If OpenWindow(0, 0, 0, 800, 600,"Graphique températures", flags)
SetWindowColor(0, $FFDDDD)
RMC_CreateChart(WindowID(0), #ChartID, 10,10,600, 450,#ColorLavender , #RMC_CTRLSTYLEFLAT,#False,"", "Tahoma")
RMC_AddRegion(#RegionID, 5, 5, -5, -5,"")
RMC_AddGrid (#ChartID, #RegionID, #ColorBeige, #True, 0, 0, 0, 0, #RMC_BICOLOR_NONE)
RMC_AddDataAxis(#ChartID, #RegionID,#RMC_DATAAXISLEFT,-15, 40, 11, 8,0,0, #RMC_LINESTYLESOLID, 0, "°", "Températures")
RMC_AddDataAxis(#ChartID, #RegionID,#RMC_DATAAXISRIGHT,0,100, 11, 8,0,0, #RMC_LINESTYLESOLID, 0, "%", "Humidité")
RMC_AddLabelAxis(#ChartID, #RegionID,#LabelAxe,1, 31,#RMC_LABELAXISBOTTOM, 8,0,#RMC_TEXTUPWARD,0,#RMC_LINESTYLESOLID,"Jours Mois")
RMC_Addlegend(#ChartID, #RegionID,"T° Matin*T° Après Midi*% Humidité",#RMC_LEGEND_CUSTOM_LL,#ColorLightYellow,#RMC_LEGENDRECT,#ColorDesertBlue,8,#False)
RMC_AddLineSeriesI(#ChartID, #RegionID,@aData.d(0),31,@adata.d(0),1,tLineSeries)
RMC_AddLineSeriesI(#ChartID, #RegionID,@aData2.d(0),31,@adata2.d(0),1,tLineSeries2)
RMC_AddLineSeriesI(#ChartID, #RegionID,@aData3.d(0),31,@adata3.d(0),1,tLineSeries3)
RMC_Draw(#ChartID)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
End

A+
André.
Mais de rien Good007, je suis content que tu t'en serves, je me doutais bien que çà ne pouvait pas servir qu'à moi.
Et puis, je n'ai pas fait grand chose à part le wrapper et quelques examples (simples).
Par contre, si tu es satisfait de la DLL, il serait intéressant de faire un maximum d'exemples fonctionnels car l'auteur de la DLL (voir site officiel) s'est dit prêt à inclure PureBasic dans son package si le nombre d'utilisateurs est suffisamment conséquent. Or à en juger le nombre de téléchargements sur ma page, çà l'air d'intéresser du monde.
Et puis, je n'ai pas fait grand chose à part le wrapper et quelques examples (simples).
Par contre, si tu es satisfait de la DLL, il serait intéressant de faire un maximum d'exemples fonctionnels car l'auteur de la DLL (voir site officiel) s'est dit prêt à inclure PureBasic dans son package si le nombre d'utilisateurs est suffisamment conséquent. Or à en juger le nombre de téléchargements sur ma page, çà l'air d'intéresser du monde.
Flype et Good07,
vous nous faites un petit CHM qui va bien en français (on va pas se prendre la tête avec du englishhhhhh)
J'ai demandé à Fred s'il pouvait integrer le fait de pouvoir ouvrir un fichier d'aide externe pour les commandes faites avec les import, il m'a dit qu'il allait regarder ce qu'il pouvait faire
(je suis inetressé pour GDI+)
vous nous faites un petit CHM qui va bien en français (on va pas se prendre la tête avec du englishhhhhh)

J'ai demandé à Fred s'il pouvait integrer le fait de pouvoir ouvrir un fichier d'aide externe pour les commandes faites avec les import, il m'a dit qu'il allait regarder ce qu'il pouvait faire

(je suis inetressé pour GDI+)
Salut Denis,
Le truc c'est qu'il y a déjà un CHM fournit avec la rmchart.dll
Les noms et arguments des fonctions sont les mêmes puisqu'il s'agit d'un wrapper fidèle à la DLL de départ. Effectivement, si PB pouvait gérer les noms de fonctions de Import/EndImport __ET__ des prototypes ce serait très pratique.
Le truc c'est qu'il y a déjà un CHM fournit avec la rmchart.dll
Les noms et arguments des fonctions sont les mêmes puisqu'il s'agit d'un wrapper fidèle à la DLL de départ. Effectivement, si PB pouvait gérer les noms de fonctions de Import/EndImport __ET__ des prototypes ce serait très pratique.
Bonsoir Denis.
Denis à écrit:
En fait comme je le disais dans un post précédent mieux vaut utiliser rmc désigner pour construire ton graphique. Tu peux utiliser toutes les options et voir ce que ça donne en direct. Puis tu sauves dans le presse papier en VB. Ensuite c'est un jeu d'enfant à convertir.
Juste une chose il ne faut pas donner la valeur 0 à #ChartID sous peine d'avoir le message suivant dans RMC_CreateChart() (invalid mémory access)
Flype a écrit:
Autrement il serai intéressant que tous ceux qui utilisent cette DLL poste aussi leurs réalisations pour pouvoir tout regrouper...
Bon c'est assez lent car je ne peux travailler dessus que lorsque je rentre du travail...Mais j'ai encore quelques idées.
A+
André.
Denis à écrit:
Tu sais la doc tu n'en as pas tellement besoin. Moi, je ne parle pas un mot d'anglais et chaque fois que je dois traduire quelque chose, j'utilise l'outil de traduction de Google et bonjour le massacre...Je sais qu'il y a déjà un chm mais pas en fr

En fait comme je le disais dans un post précédent mieux vaut utiliser rmc désigner pour construire ton graphique. Tu peux utiliser toutes les options et voir ce que ça donne en direct. Puis tu sauves dans le presse papier en VB. Ensuite c'est un jeu d'enfant à convertir.
Juste une chose il ne faut pas donner la valeur 0 à #ChartID sous peine d'avoir le message suivant dans RMC_CreateChart() (invalid mémory access)

Flype a écrit:
Pour l'instant je teste. Chaque fois que je trouve un truc, je le posterai sur le forum. Je fais des essais avec la fonction Info pour pouvoir afficher la valeur d'un point lorsqu'on clique dessus avec la souris. Je sais que tu as déja fait un exemple, mais je ne veux pas utiliser débug pour afficher le résultat.Par contre, si tu es satisfait de la DLL, il serait intéressant de faire un maximum d'exemples fonctionnels car l'auteur de la DLL (voir site officiel) s'est dit prêt à inclure PureBasic dans son package si le nombre d'utilisateurs est suffisamment conséquent. Or à en juger le nombre de téléchargements sur ma page, çà l'air d'intéresser du monde.
Autrement il serai intéressant que tous ceux qui utilisent cette DLL poste aussi leurs réalisations pour pouvoir tout regrouper...
Bon c'est assez lent car je ne peux travailler dessus que lorsque je rentre du travail...Mais j'ai encore quelques idées.

A+
André.
@good007
as-tu essayé l'exemple 'rmc_player.pb' ?
il montre justement comment utiliser le 'roll-over', et même comment bouger le graphique à la souris (essaye).
@denis
l'anglais - désolé çà va te faire mal aux fesses - mais moi je préfère au francais (pour la prog uniquement). Question d'habitude...
c'est toujours un travail monstrueux la traduction, pas le temps...
as-tu essayé l'exemple 'rmc_player.pb' ?
il montre justement comment utiliser le 'roll-over', et même comment bouger le graphique à la souris (essaye).
@denis
l'anglais - désolé çà va te faire mal aux fesses - mais moi je préfère au francais (pour la prog uniquement). Question d'habitude...
c'est toujours un travail monstrueux la traduction, pas le temps...
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Pourras tu mettre la taille de tes fichiers à coté des fichiers sur la premier page ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Bonjour à tous.
J'ai pas beaucoup le temps de programmer en ce moment, mais je continue avec cette DLL dès que j'ai un moment.
Voici donc une nouvelle version avec 2 graphiques (2 régions) dans la même fenêtre. De plus lorsque vous appuyez sur le bouton gauche de la souris sur un point du graphique, cela ouvre une petite fenêtre qui renseigne sur le point cliqué. Cette fenêtre disparait dès qu'on relache le bouton.
Juste une petite question si quelqu'un peut me répondre. A quoi peut servir la fonction:
A colorier la fenêtre c'est certain. Mais le problème c'est qu'après avoir utiliser cette commande, les fonctions drawtext(), circle(), line() etc... ne fonctionnent plus.
Essayez d'enlever le commentaire de la ligne 165 et vous verrez.
Je fait peut être une erreur quelque part, ou bien faut-il utiliser le callback dans ce cas là ? Ou alors un bug de PureBasic ?
Voici le code :
A+
André.
J'ai pas beaucoup le temps de programmer en ce moment, mais je continue avec cette DLL dès que j'ai un moment.
Voici donc une nouvelle version avec 2 graphiques (2 régions) dans la même fenêtre. De plus lorsque vous appuyez sur le bouton gauche de la souris sur un point du graphique, cela ouvre une petite fenêtre qui renseigne sur le point cliqué. Cette fenêtre disparait dès qu'on relache le bouton.
Juste une petite question si quelqu'un peut me répondre. A quoi peut servir la fonction:
Code : Tout sélectionner
SetWindowColor(1, $FFFDF)

Essayez d'enlever le commentaire de la ligne 165 et vous verrez.
Je fait peut être une erreur quelque part, ou bien faut-il utiliser le callback dans ce cas là ? Ou alors un bug de PureBasic ?
Voici le code :
Code : Tout sélectionner
XIncludeFile "RMChart.pbi"
Global RMC_OldCallBack.l,IndexInfo.b
Global Dim Jsemaine$(6)
Global Dim Mesure$(3)
Global Dim Unite$(3)
Restore JourSemaine
For n=0 To 6
Read Jsemaine$(n)
Next n
Restore Mesures
For n=1 To 3
Read Mesure$(n)
Next n
Restore Unites
For n=1 To 3
Read Unite$(n)
Next n
If Not RMC_INIT()
MessageRequester("Error", "Can't initialized RMCHART.DLL", #MB_ICONERROR)
End
EndIf
#ChartID = 1
#RegionID = 1
#RegionID2 = 2
flags = #PB_Window_SystemMenu
flags | #PB_Window_SizeGadget
flags | #PB_Window_ScreenCentered
flags | #PB_Window_MinimizeGadget
flags | #PB_Window_MaximizeGadget
#LabelAxe="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*31"
tRegion.tRMC_REGION
tRegion\nLeft.l =5
tRegion\nTop.l =5
tRegion\nWidth.l =-5
tRegion\nHeight.l =400
PokeS(@tRegion\sFooter ,"Octobre 2005",200)
tRegion\nShowBorder.l =#True
tRegion2.tRMC_REGION
tRegion2\nLeft.l =5
tRegion2\nTop.l =410
tRegion2\nWidth.l =-5
tRegion2\nHeight.l =-5
PokeS(@tRegion2\sFooter ,"Octobre 2005",200)
tRegion2\nShowBorder.l =#True
tGrid.tRMC_GRID
tGrid\nGridBackColor = #ColorBeige
tGrid\nAsGradient = #True
tGrid\nBicolor = #RMC_BICOLOR_NONE
tGrid\nLeft = 0
tGrid\nTop = 0
tGrid\nWidth = 0
tGrid\nHeight = 0
tGrid2.tRMC_GRID
tGrid2\nGridBackColor = #ColorTan
tGrid2\nAsGradient = #True
tGrid2\nBicolor = #RMC_BICOLOR_NONE
tGrid2\nLeft = 0
tGrid2\nTop = 0
tGrid2\nWidth = 0
tGrid2\nHeight = 0
tLineSeries.tRMC_LINESERIES
tLineSeries\nType.l =#RMC_LINE
tLineSeries\nStyle.l =#RMC_LINE_CABLE_SHADOW
tLineSeries\nLineStyle.l =#RMC_LSTYLE_LINE_AREA
tLineSeries\nIsLucent.l =#False
tLineSeries\nColor.l =#ColorSpringGreen
tLineSeries\nSeriesSymbol.l =#RMC_SYMBOL_BULLET
tLineSeries\nWhichDataAxis.l =1
tLineSeries\nValueLabelOn.l =#RMC_VLABEL_NONE
tLineSeries\nHatchMode.l =#RMC_HATCHBRUSH_OFF
tLineSeries2.tRMC_LINESERIES
tLineSeries2\nType.l =#RMC_LINE
tLineSeries2\nStyle.l =#RMC_LINE_CABLE_SHADOW
tLineSeries2\nLineStyle.l =#RMC_LSTYLE_LINE
tLineSeries2\nIsLucent.l =#False
tLineSeries2\nColor.l =#ColorRed
tLineSeries2\nSeriesSymbol.l =#RMC_SYMBOL_BULLET
tLineSeries2\nWhichDataAxis.l =1
tLineSeries2\nValueLabelOn.l =#RMC_VLABEL_NONE
tLineSeries2\nHatchMode.l =#RMC_HATCHBRUSH_OFF
tLineSeries3.tRMC_LINESERIES
tLineSeries3\nType.l =#RMC_LINE
tLineSeries3\nStyle.l =#RMC_LINE_CABLE_SHADOW
tLineSeries3\nLineStyle.l =#RMC_LSTYLE_LINE
tLineSeries3\nIsLucent.l =#False
tLineSeries3\nColor.l =#ColorBananaYellow
tLineSeries3\nSeriesSymbol.l =#RMC_SYMBOL_BULLET
tLineSeries3\nWhichDataAxis.l =2
tLineSeries3\nValueLabelOn.l =#RMC_VLABEL_NONE
tLineSeries3\nHatchMode.l =#RMC_HATCHBRUSH_OFF
tBareSeries.tRMC_BARSERIES
tBareSeries\nType.l =#RMC_BARSINGLE
tBareSeries\nStyle.l =#RMC_BAR_FLAT
tBareSeries\nIsLucent.l =#False
tBareSeries\nColor.l =#ColorWhiteSmoke
tBareSeries\nIsHorizontal.l =#False
tBareSeries\nWhichDataAxis.l =1
tBareSeries\nValueLabelOn.l =#RMC_VLABEL_NONE
tBareSeries\nPointsPerColumn.l =1
tBareSeries\nHatchMode.l =#RMC_HATCHBRUSH_ON
Dim aData.d(30)
For n=0 To 30
aData(n)=Random(15)
Next n
Dim aData2.d(30)
For n=0 To 30
aData2(n)=Random(10)+20
Next n
Dim aData3.d(30)
For n=0 To 30
aData3(n)=Random(15)+60
Next n
Dim aData4.d(30)
For n=0 To 30
aData4(n)=Random(15)+1000
Next n
Procedure.l RMC_MyCallback(WindowID, message, wParam, lParam)
Protected Result.l = CallWindowProc_(RMC_OldCallBack, WindowID, message, wParam, lParam)
Select message
Case #WM_COMMAND
Select (wParam >> 16)
Case #RMC_LBUTTONDOWN
*TINFO.tRMC_INFO = lParam
If *TINFO
IndexInfo=*TINFO\nDataIndex
date$=Str(*TINFO\nDataIndex)+"/"+"10"+"/"+"2005"
Date=ParseDate("%dd/%mm/%yyyy",date$)
j$=Jsemaine$(DayOfWeek(Date))
If *TINFO\nRegionIndex=1 And *TINFO\nDataIndex<>0
OpenWindow(1,(WindowMouseX(0)+WindowX(0))+5,(WindowMouseY(0)+WindowY(0))-15,150,50,"",#PB_Window_BorderLess)
;SetWindowColor(1, $FFFDF)
StartDrawing(WindowOutput(1))
DrawingMode(#PB_2DDrawing_Transparent)
FrontColor($FF0000)
DrawText(5,5,j$)
DrawText(5,17,date$)
DrawText(5,29,Mesure$(*TINFO\nSeriesIndex)+" "+ StrD(*TINFO\nData1,2)+Unite$(*TINFO\nSeriesIndex))
StopDrawing()
EndIf
If *TINFO\nRegionIndex=2 And *TINFO\nDataIndex<>0
OpenWindow(1,(WindowMouseX(0)+WindowX(0))+5,(WindowMouseY(0)+WindowY(0))-15,150,50,"",#PB_Window_BorderLess)
StartDrawing(WindowOutput(1))
DrawingMode(#PB_2DDrawing_Transparent)
FrontColor($FF0000)
DrawText(5,5,j$)
DrawText(5,17,date$)
DrawText(5,29,"Pression"+" "+StrD(*TINFO\nData1,0)+" "+"hPa")
StopDrawing()
EndIf
EndIf
Case #RMC_LBUTTONUP
If IndexInfo<>0
CloseWindow(1)
EndIf
Case #RMC_LBUTTONDBLCLK
Case #RMC_RBUTTONDOWN
Case #RMC_RBUTTONUP
Case #RMC_RBUTTONDBLCLK
Case #RMC_MBUTTONDOWN
Case #RMC_MBUTTONUP
Case #RMC_MBUTTONDBLCLK
Case #RMC_SHIFTLBUTTONDOWN
Case #RMC_SHIFTLBUTTONUP
Case #RMC_SHIFTLBUTTONDBLCLK
Case #RMC_SHIFTRBUTTONDOWN
Case #RMC_SHIFTRBUTTONUP
Case #RMC_SHIFTRBUTTONDBLCLK
Case #RMC_SHIFTMBUTTONDOWN
Case #RMC_SHIFTMBUTTONUP
Case #RMC_SHIFTMBUTTONDBLCLK
Case #RMC_CTRLLBUTTONDOWN
Case #RMC_CTRLLBUTTONUP
Case #RMC_CTRLLBUTTONDBLCLK
Case #RMC_CTRLRBUTTONDOWN
Case #RMC_CTRLRBUTTONUP
Case #RMC_CTRLRBUTTONDBLCLK
Case #RMC_CTRLMBUTTONDOWN
Case #RMC_CTRLMBUTTONUP
Case #RMC_CTRLMBUTTONDBLCLK
Case #RMC_MOUSEMOVE
EndSelect
EndSelect
ProcedureReturn Result
EndProcedure
If OpenWindow(0, 0, 0, 650, 900,"Graphique températures", flags)
If RMC_CreateChart(WindowID(0), #ChartID, 0,0,650, 900,#ColorLavender , #RMC_CTRLSTYLEFLAT,#False,"", "Tahoma")=#RMC_NO_ERROR
RMC_AddRegionI(#RegionID,tRegion)
RMC_AddGridI(#ChartID, #RegionID,tGrid)
RMC_AddDataAxis(#ChartID, #RegionID,#RMC_DATAAXISLEFT,-15, 40, 11, 8,0,0, #RMC_LINESTYLESOLID, 0, "°", "Températures")
RMC_AddDataAxis(#ChartID, #RegionID,#RMC_DATAAXISRIGHT,0,100, 11, 8,0,0, #RMC_LINESTYLESOLID, 0, "%", "Humidité")
RMC_AddLabelAxis(#ChartID, #RegionID,#LabelAxe,1, 31,#RMC_LABELAXISBOTTOM, 8,0,#RMC_TEXTUPWARD,0,#RMC_LINESTYLESOLID,"Jours Mois")
RMC_Addlegend(#ChartID, #RegionID,"T° Matin*T° Après Midi*% Humidité",#RMC_LEGEND_CUSTOM_LL,#ColorLightYellow,#RMC_LEGENDRECT,#ColorDesertBlue,8,#False)
RMC_AddLineSeriesI(#ChartID, #RegionID,@aData.d(0),31,@aData.d(0),1,tLineSeries)
RMC_AddLineSeriesI(#ChartID, #RegionID,@aData2.d(0),31,@aData2.d(0),1,tLineSeries2)
RMC_AddLineSeriesI(#ChartID, #RegionID,@aData3.d(0),31,@aData3.d(0),1,tLineSeries3)
RMC_AddRegionI(#RegionID,tRegion2)
RMC_AddGridI(#ChartID,#RegionID2,tGrid2)
RMC_AddDataAxis(#ChartID, #RegionID2,#RMC_DATAAXISLEFT,995, 1030, 11, 8,0,0, #RMC_LINESTYLESOLID, 0, "", "Pression")
RMC_AddLabelAxis(#ChartID, #RegionID2,#LabelAxe,1, 31,#RMC_LABELAXISBOTTOM, 8,0,#RMC_TEXTUPWARD,0,#RMC_LINESTYLESOLID,"Jours Mois")
RMC_AddBarSeriesI(#ChartID, #RegionID2,@aData4.d(0),31,tBareSeries)
RMC_Draw(#ChartID)
RMC_OldCallBack = SetWindowLong_(WindowID(0),#GWL_WNDPROC, @RMC_MyCallback())
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
DataSection
JourSemaine:
Data.s "Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"
Mesures:
Data.s "T° Matin","T° Après Midi","Humidité"
Unites:
Data.s "°","°","%"
EndDataSection
End
André.
Bonjour Denis.
denis à écrit:
Cette option correspond à la constante #RMC_LSTYLE_LINE_AREA dans tRMC_LINESERIES. En fait, c'est le style de la courbe.
Cette dll à vraiment un potentiel énorme pour celui qui veux utiliser des graphiques pour mettre en valeur une série de chiffre.
André
denis à écrit:
Oui, c'est normal, cette aire correspond en fait au Mini Maxi de la courbe et l'on peut programmer une aire pour chaque courbe. Mais avec plusieurs courbes sur le même graphique, il vaut mieu s'en tenir à une seule sinon tout se mélange et on ne comprend plus rien.sur le graphe des températures, l'aire en dessous de la courbe verte est verdâtre (semi-transparent). C'est normal ?
Cette option correspond à la constante #RMC_LSTYLE_LINE_AREA dans tRMC_LINESERIES. En fait, c'est le style de la courbe.
Cette dll à vraiment un potentiel énorme pour celui qui veux utiliser des graphiques pour mettre en valeur une série de chiffre.
André