Flype - UserLibraries pour PureBasic 4.0
Merci à Denis et à Flype
Pour Denis, ton système fonctionne, mais c'est ensuite à la ligne suivante que j'ai le même message d'erreur.
Je crois que je vais attendre les tutoriaux de Flype pour continuer, et voir où je fais une erreur...
Merci à tous les deux.
André.

Pour Denis, ton système fonctionne, mais c'est ensuite à la ligne suivante que j'ai le même message d'erreur.
Code : Tout sélectionner
nRetVal = RMC_CreateChart(nParentHndl.l, nCtrlId.l, tChart\nLeft.l,tChart\nTop.l,tChart\nWidth.l,tChart\nHeight.l,tChart\nBackColor.l,tChart\nCtrlStyle.l, nExportOnly.l, tChart\sBgImage, tChart\sFontName)
Merci à tous les deux.
André.
Good07
J'ai regardé hier la déclaration de la structure et ce n'est pas une chaîne (si je me souviens bien) sens texte suivi d'un 0 de fin de chaîne mais un buffer (c'est à dire une zone mémoire ou sont stokés des valeurs correspondant au code ascci des caractères avec une limite fixée dans la déclaration.
La encore il faut mettre le @ devant car on passe l'adresse du buffer à la fonction et ce n'est pas une chaîne au sens des commandes PB.
Essaye ça
Par contre je n'ai pas encore travaillé avec mais ça viendra. Je pense que le dernier caractère de la chaîne doit être égal à 0 pour indiquer la fin de chaîne car apparement on ne passe pas le nombre réel des caractères du buffer.
En mettant @"TAHOMA" par exemple, il n'y a pas besoin de rajouter un 0 de fin de chaîne.
J'ai regardé hier la déclaration de la structure et ce n'est pas une chaîne (si je me souviens bien) sens texte suivi d'un 0 de fin de chaîne mais un buffer (c'est à dire une zone mémoire ou sont stokés des valeurs correspondant au code ascci des caractères avec une limite fixée dans la déclaration.
La encore il faut mettre le @ devant car on passe l'adresse du buffer à la fonction et ce n'est pas une chaîne au sens des commandes PB.
Essaye ça
Code : Tout sélectionner
nRetVal = RMC_CreateChart(nParentHndl.l, nCtrlId.l, tChart\nLeft.l,tChart\nTop.l,tChart\nWidth.l,tChart\nHeight.l,tChart\nBackColor.l,tChart\nCtrlStyle.l, nExportOnly.l, @tChart\sBgImage, @tChart\sFontName)
En mettant @"TAHOMA" par exemple, il n'y a pas besoin de rajouter un 0 de fin de chaîne.
@good007
j'ai pas finit mais si tu a besoin voici
tout de suite l'archive dans son état actuel :
RMChart_PB40_TEST.zip
et sinon moi j'en suis très content de cette dll.
je l'utilise au taf, ca va, ca se programme bien
et avec un peu d'habitude ca roule tout seul.
j'ai pas finit mais si tu a besoin voici
tout de suite l'archive dans son état actuel :
RMChart_PB40_TEST.zip
et sinon moi j'en suis très content de cette dll.
je l'utilise au taf, ca va, ca se programme bien
et avec un peu d'habitude ca roule tout seul.
Merci Flype et Denis
Pour moi, pas de problème de téléchargement, mais toujours des problèmes d'utilisation.
En fait, je peux omettre les deux derniers paramettres, en les remplaçant par des chaines vides puisque la police par défaut sera automatiquement la "Tahoma", et l'image de font n'est pas nécessaire. Linconvénient c'est que j'ai maintenant invalid mémory access.
Bon, je suis tétu je continue mes investigations.
A+
André
Pour moi, pas de problème de téléchargement, mais toujours des problèmes d'utilisation.
En fait, je peux omettre les deux derniers paramettres, en les remplaçant par des chaines vides puisque la police par défaut sera automatiquement la "Tahoma", et l'image de font n'est pas nécessaire. Linconvénient c'est que j'ai maintenant invalid mémory access.

Bon, je suis tétu je continue mes investigations.
A+
André
chaque chaine de caractère doit etre définie avec 'PokeS()' comme çà :
Code : Tout sélectionner
XIncludeFile "..\rmchart.pbi"
tChart.tRMC_CHART
tChart\nLeft = 10
tChart\nTop = 10
tChart\nWidth = 600
tChart\nHeight = 400
tChart\nBackColor = #ColorDodgerBlue
tChart\nCtrlStyle = #RMC_CTRLSTYLEFLATSHADOW
PokeS(@tChart\sFontName, "Tahoma", 50)
tRegion.tRMC_Region
tRegion\nLeft = 5
tRegion\nTop = 5
tRegion\nWidth = -5
tRegion\nHeight = -5
tRegion\nShowBorder = #True
PokeS(@tRegion\sFooter, "*** user footnote ***", 200)
tCaption.tRMC_Caption
tCaption\nBackColor = #ColorBlack
tCaption\nTextColor = #ColorWhite
tCaption\nFontSize = 10
tCaption\nIsBold = #True
PokeS(@tCaption\sText, "*** user caption ***", 200)
If OpenWindow(0, 0, 0, 800, 600, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
If CreateGadgetList(WindowID(0))
; gadgets
EndIf
If RMC_INIT()
If RMC_CreateChartI(WindowID(0), 1, tChart) = #RMC_NO_ERROR
RMC_AddRegionI(1, tRegion)
RMC_AddCaptionI(1, 1, tCaption)
RMC_Draw(1)
EndIf
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
End
Super ! Flype.
ça fonctionne nickel
Mes connaissances ne m'auraient jamais permis de trouver ça au sujet des chaines de caractère.
Je t'avoue que j'étais prét à refaire le Wrapper, mais en utilisant la fonction:
Import...EndImport que j'utilise pour la Dll "swedll32.dll" et qui marche super.
Bon maitenant que j'ai la trame, je vais voir ce que je peux faire pour avoir un beau graphique...
En fait j'avais utilisé rmcdesigner et sauvegardé l'exemple en VB et en power basic, et je suis parti de ces deux sources pour les transformer en listing PureBasic. Mais apparemment je ne suis pas assez doué pour ce genre d'exercice.
Bon il me reste encore du travail pour faire le reste...
Merci pour ton aide qui m'est à chaque fois très précieuse et félicitation pour ton travail qui mérite vraiment qu'on s'y intéresse.
A+
André.
ça fonctionne nickel

Mes connaissances ne m'auraient jamais permis de trouver ça au sujet des chaines de caractère.
Je t'avoue que j'étais prét à refaire le Wrapper, mais en utilisant la fonction:
Import...EndImport que j'utilise pour la Dll "swedll32.dll" et qui marche super.
Bon maitenant que j'ai la trame, je vais voir ce que je peux faire pour avoir un beau graphique...

En fait j'avais utilisé rmcdesigner et sauvegardé l'exemple en VB et en power basic, et je suis parti de ces deux sources pour les transformer en listing PureBasic. Mais apparemment je ne suis pas assez doué pour ce genre d'exercice.

Bon il me reste encore du travail pour faire le reste...
Merci pour ton aide qui m'est à chaque fois très précieuse et félicitation pour ton travail qui mérite vraiment qu'on s'y intéresse.
A+
André.
pourtant c'est comme çà que j'ai appris - ca se fait très bien.Good07 a écrit :En fait j'avais utilisé rmcdesigner et sauvegardé l'exemple en VB et en power basic, et je suis parti de ces deux sources pour les transformer en listing PureBasic. Mais apparemment je ne suis pas assez doué pour ce genre d'exercice.
mais c'est vrai que faut connaitre un minimum VB.
en tout cas j'essaierai de t'aider autant que possible.
NB: pour utiliser Import/EndImport il faudrait pour çà le fichier rmchart.lib qui n'est malheureusement pas fournit dans l'archive officielle.
dommage, sinon je l'aurais aussi implémenter comme çà...
allez bon courage.
Flype à écrit:
Bon ça avance pas mal, j'ai compris les grandes lignes, mais je vais encore faire appel à ta science car je n'arrive pas à faire apparaitre les graphiques. Il ne s'affiche qu'une seule barre (et encore ...) sur le côté gauche alors que je veux en afficher 28.
Voici mon programme:
Faut-il une boucle pour afficher chaque valeur contenues dans le tableau aData 
Je cherche...Je cherche mais ne trouve point
Rectification, je viens de trouver.
J'avais oublié de définir LABEL AXIS
ça marche nickel !
Il manque l'écriture sur l'axe des x pour numéroter les jours mais ça ne doit pas être très compliqué.
Je posterai plus tard un listing plus commenté pour aider celui qui débute.
A+
André
C'est vrai, je n'avais pas vérifié si il y était avant de penser à cette méthode.NB: pour utiliser Import/EndImport il faudrait pour çà le fichier rmchart.lib qui n'est malheureusement pas fournit dans l'archive officielle.
Bon ça avance pas mal, j'ai compris les grandes lignes, mais je vais encore faire appel à ta science car je n'arrive pas à faire apparaitre les graphiques. Il ne s'affiche qu'une seule barre (et encore ...) sur le côté gauche alors que je veux en afficher 28.

Voici mon programme:
Code : Tout sélectionner
XIncludeFile "RMChart.pbi"
tChart.tRMC_CHART
tChart\nLeft = 10
tChart\nTop = 10
tChart\nWidth = 600
tChart\nHeight = 400
tChart\nBackColor = #ColorDodgerBlue
tChart\nCtrlStyle = #RMC_CTRLSTYLEFLATSHADOW
PokeS(@tChart\sFontName, "Tahoma", 50)
tCaption.tRMC_Caption
tCaption\nBackColor = #ColorDodgerBlue
tCaption\nTextColor = #ColorWhite
tCaption\nFontSize = 10
tCaption\nIsBold = #True
PokeS(@tCaption\sText, "Relevé du mois de Septembre", 200)
tRegion.tRMC_Region
tRegion\nLeft = 10
tRegion\nTop = 15
tRegion\nWidth = -12
tRegion\nHeight = -15
tRegion\nShowBorder = #True
PokeS(@tRegion\sFooter, "Année 2006", 200)
tGrid.tRMC_GRID
tGrid\nGridBackColor = 0
tGrid\nAsGradient = #False
tGrid\nBicolor = #RMC_BICOLOR_NONE
tGrid\nLeft = 0
tGrid\nTop = 0
tGrid\nWidth = 0
tGrid\nHeight = 0
tDataAxis.tRMC_DATAAXIS
tDataAxis\nAlignment = #RMC_DATAAXISLEFT
tDataAxis\nMinValue = 0
tDataAxis\nMaxValue = 50
tDataAxis\nTickCount = 11
tDataAxis\nFontsize = 8
tDataAxis\nTextColor = #ColorRed
tDataAxis\nLineColor = 0
tDataAxis\nLineStyle = #RMC_LINESTYLESOLID
tDataAxis\nDecimalDigits = 0
PokeS(@tDataAxis\sUnit, "+",16)
PokeS(@tDataAxis\sText, " Température",100)
tLabelAxis.tRMC_LABELAXIS
tLabelAxis\nCount = 1
tLabelAxis\nTickCount = 28
tLabelAxis\nAlignment = #RMC_LABELAXISBOTTOM
tLabelAxis\nFontsize = 8
tLabelAxis\nTextColor = #ColorRed
tLabelAxis\nTextAlignment = #RMC_TEXTCENTER
tLabelAxis\nLineColor = #ColorRed
tLabelAxis\nLineStyle = #RMC_LINESTYLESOLID
PokeS(@tLabelAxis\sText,"",100)
tBarSeries.tRMC_BARSERIES
tBarSeries\nType = #RMC_BARSINGLE
tBarSeries\nStyle = #RMC_BAR_3D
tBarSeries\nIsLucent = #False
tBarSeries\nColor = #ColorLightGoldenrodYellow
tBarSeries\nIsHorizontal = #False
tBarSeries\nWhichDataAxis = 1
tBarSeries\nValueLabelOn = #RMC_VLABEL_NONE
tBarSeries\nPointsPerColumn = 1
tBarSeries\nHatchMode = #RMC_HATCHBRUSH_OFF
Dim aData.d(30)
For n=0 To 30
aData(n)=Random(30)+1
Next n
If OpenWindow(0, 0, 0, 800, 600, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
If CreateGadgetList(WindowID(0))
; gadgets
EndIf
If RMC_INIT()
If RMC_CreateChartI(WindowID(0), 1, tChart) = #RMC_NO_ERROR
RMC_AddRegionI(1, tRegion)
RMC_AddCaptionI(1, 1, tCaption)
RMC_AddGridI(1, 1, tGrid)
RMC_AddDataAxisI(1, 1, tDataAxis)
RMC_AddLabelAxisI(1, 1, "", tLabelAxis)
RMC_AddBarSeriesI(1, 1, @aData.d(0), 28, tBarSeries)
RMC_SetWatermark(#RMC_USERWM,#RMC_USERWMCOLOR,#RMC_USERWMLUCENT,#RMC_USERWMALIGN,#RMC_USERFONTSIZE)
RMC_Draw(1)
EndIf
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Je cherche...Je cherche mais ne trouve point

Rectification, je viens de trouver.

J'avais oublié de définir LABEL AXIS
ça marche nickel !
Il manque l'écriture sur l'axe des x pour numéroter les jours mais ça ne doit pas être très compliqué.
Je posterai plus tard un listing plus commenté pour aider celui qui débute.

A+
André
Dernière modification par Good07 le jeu. 28/sept./2006 10:46, modifié 1 fois.
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
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 ?
Sinon le tutorial 6 ne fonctionne pas
est ce que cela a été dur de traduire du PowerBasic ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Bonjour Progi1984
Progi1984 a écrit:
Comme moi.
J'avoue que le VB semble plus compréhensible.
Je viens de rééditer mon post précedent, le graphique fontionne maintenant nickel et en plus c'est assez simple à mettre en oeuvre quand on a compris les bases, mais ça c'est grâce à Flype.
Tout seul je n'y serai jamais arrivé.
avec un peu de travail on va pouvoir faire de très beaux graphiques très professionnels.
Progi1984 a écrit:
Aussi dur que le Visual Basic quand on ne connait pas trop la syntaxe du langage...est ce que cela a été dur de traduire du PowerBasic ?

J'avoue que le VB semble plus compréhensible.
Je viens de rééditer mon post précedent, le graphique fontionne maintenant nickel et en plus c'est assez simple à mettre en oeuvre quand on a compris les bases, mais ça c'est grâce à Flype.
Tout seul je n'y serai jamais arrivé.
avec un peu de travail on va pouvoir faire de très beaux graphiques très professionnels.

pour avoir un rendu pro, oui c'est plutot bien.
avant je faisais mes graphiques avec la lib PDF qui est très bien aussi
mais il avait fallu que je me fasse un 'moteur' de graphique.
là j'ai tout ce qu'il me faut, regardez par ex (échantillon réel utilisé en production ) :

ps:
franchement çà été très facile de convertir depuis powerbasic ou vb.
mais bon ca fait 4 ans que je programme en purebasic alors des codes j'en ai converti à la pelle à une époque (pour comprendre la prog win32).
avant je faisais mes graphiques avec la lib PDF qui est très bien aussi
mais il avait fallu que je me fasse un 'moteur' de graphique.
là j'ai tout ce qu'il me faut, regardez par ex (échantillon réel utilisé en production ) :
ps:
franchement çà été très facile de convertir depuis powerbasic ou vb.
mais bon ca fait 4 ans que je programme en purebasic alors des codes j'en ai converti à la pelle à une époque (pour comprendre la prog win32).