Page 5 sur 7
Publié : ven. 20/oct./2006 19:05
par Jacobus
Salut Good07
Les opérations de dessin sur la fenêtre doivent supplanter le SetWindowColor() entrainant ce problème.
Un exemple de palliatif, plus lourd mais fonctionnel, en prenant les fonctions de base.
Code : Tout sélectionner
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, RGB(58, 91, 197))
CreateGadgetList(WindowID(1))
TextGadget(0,0,0,WindowWidth(1),WindowHeight(1),j$+" "+date$ +Chr(13)+ Mesure$(*TINFO\nSeriesIndex)+" "+ StrD(*TINFO\nData1,2)+Unite$(*TINFO\nSeriesIndex))
SetGadgetColor(0,#PB_Gadget_FrontColor,RGB(238, 238, 17))
SetGadgetColor(0,#PB_Gadget_BackColor,RGB(58, 91, 197))
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)
SetWindowColor(1, $FFFDF)
CreateGadgetList(WindowID(1))
TextGadget(0,0,0,WindowWidth(1),WindowHeight(1),j$+" "+date$ +Chr(13)+ "Pression"+" "+StrD(*TINFO\nData1,0)+" "+"hPa")
SetGadgetColor(0,#PB_Gadget_FrontColor,RGB(58, 91, 197))
SetGadgetColor(0,#PB_Gadget_BackColor,$FFFDF)
EndIf
C'est pas mal ton prog de climatologie, bel exemple de l'usage de cette lib. J'ai pas le temps d'en étudier toutes ses possibilités et la manière de s'en servir, mais j'espère que ça viendra.
@+
Publié : ven. 20/oct./2006 19:35
par Good07
Bonsoir Jacobus.
Merci pour ton aide, effectivement comme ça ça marche nickel.
Merci pour ton commentaire. J'ai pris cet exemple car on m'avais demandé un petit programme pour rentrer les températures et la pression de tous les jours. Une sorte de base de données météorologique en somme.
J'avais fait celui-ci en PureBasic 3.94 et maintenant dès que j'ai le temps et au vu de cette DLL je suis en train de le passer en version 4.0. Mais ça n'avance pas vite car j'ai très peu de temps pour vraiment programmer.
A +
Publié : ven. 20/oct./2006 19:47
par Jacobus
Mais ça n'avance pas vite car j'ai très peu de temps pour vraiment programmer
M'en parle pas

je suis dans le même cas... que veux-tu? on a un métier. Je te le dis, il faut être acharné pour y passer autant de temps.
Mais ça vaut quand même le coup.

Publié : jeu. 14/déc./2006 11:04
par Flype
Flype a écrit :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
en fait, je percute que maintenant mais on peut se passer des PokeS().
écrire ceci (pour les chaines de caractères) est un petit peu galère :
PokeS(@tChart\sFontName, "Tahoma", 50)
grace aux strings fixes, on peut modifier l'include RMChart. Ce qui donne avec la structure tRMC_CHART par ex :
Code : Tout sélectionner
Structure tRMC_CHART
nTop.l
nLeft.l
nWidth.l
nHeight.l
nBackColor.l
nCtrlStyle.l
nExportOnly.l
sBgImage.s{100} ; sBgImage.c[100]
sFontName.s{50} ; sFontName.c[50]
EndStructure
du coup il n'y a plus qu'à écrire : tChart\sFontName = "Tahoma".
c'est quand même beaucoup plus mieux comme çà

Publié : mar. 19/déc./2006 16:51
par Flype
Mise à jour du wrapper de la lib RMChart pour la rendre compatible avec PB4.02.
Il y avait auparavant un problème avec Global/Shared dans PB4.01.
Voir le 1er post.
Publié : mar. 19/déc./2006 17:59
par poshu
Flype, j'utilise ton parser xml (merciiiiii) et j'ai une requete: est ce possible (?) de rajouter l'ouverture dupuis une fichier en mémoire et non pas depuis le disque?
Merci d'avance
Plus.
Publié : mar. 19/déc./2006 18:43
par Good07
Merci Flype pour cette nouvelle version.
Je m'étais aperçu que l'ancienne ne fonctionnait pas avec la version 4.01, mais comme cette version posait quelques problèmes, j'étais revenu à la version 4.0 de PureBasic qui elle fonctionnait parfaitement.
Je télécharge ça et je ferai les essais dès que j'aurai un moment. Par la même occasion je vais mettre la 4.02 de Pure.
A suivre donc...
Publié : mar. 19/déc./2006 19:28
par Flype
@good007
Ouai pareil - au taf du moins j'en étais resté à la 4.00
@poshu
PureXML_ParseString(xmlString.s) ne suffit-il pas ?
tu peux te faire une fonction qui ouvrirait ton fichier en mémoire et le copierait dans une chaine de caractères.
mais c'est quoi pour toi un fichier ouvert en mémoire ?
un adresse, un string ? ouvert avec ReadFile() ?
Publié : mer. 20/déc./2006 10:06
par Good07
Bon nouvelle version installée.
RMChart + PureBasic 4.02. Ca marche nickel, mais ne pas oublier de supprimer le t minuscule devant les noms des structures.
Par exemple tRMC_CHART s'appelle dorénavant RMC_CHART mais c'est un détail vite corrigé dans mes anciens listing.
Donc merci encore à Flype pour cette nouvelle mise à jour.

Publié : mer. 20/déc./2006 16:32
par Flype
tant mieux
et désolé pour les petites modifs mais c'est plus simple comme çà.
bon puisqu'on est dans les modifs :
1/ j'ai modifié les structures tRMC_xxx en RMC_xxx.
2/ j'ai aussi mis des champs de type 'fixed-string' dans les structures (cf. mon post du 14-DEC-06).
3/ il n'y a plus les procédures RMC_INIT() et RMC_END(). Tout est initialisé à l'inclusion du fichier 'RMChart.pbi'.
4/ mise à jour des sources d'exemples.
Publié : mer. 27/déc./2006 14:59
par Progi1984
Parmi tes userlibs de Base de Données, y en a t il une que l'on peut utiliser en pointant directement vers le fichier ?
Publié : jeu. 28/déc./2006 23:35
par Flype
ahh j'arrive enfin à poster un message sur le forum

(merci beaucoup fred)
donc non désolé, mes libs/includes sont toutes orientées clients/serveur.
il te faudrait plutot (par ex) créer un connecteur ODBC qui pointe vers un fichier .mdb (access) ou .xls (excel) et ensuite te connecter dessus avec les fonctions database natives de pure.
Publié : mar. 09/janv./2007 12:17
par Progi1984
Pour
PureXML:
1- Niveau d'erreur
n'y a t il pas moyen de gérer le niveau d'erreur ?
Parceque disons que ce genre d'erreur pourrait être validé dans un niveau d'erreur faible mais ne pas passer dans un niveau d'erreur supérieur :
Code : Tout sélectionner
(33:53) Nesting error. Expecting end tag=Abstract, but found abstract
XML File :
2- Arret du parsing
Ne serait il pas possible que si l'on tombe sur un truc dans l'un des handlers de pouvoir arreter le parsing du fichier ?
Publié : mar. 09/janv./2007 14:08
par Flype
bah écoute, on va étudier çà.
de toutes façons cette lib mérite une réécriture complète.
d'ailleurs, j'ai dans mes cartons plusieurs réécritures susceptibles de t'intéresser. je vais voir çà ce soir.
Publié : mar. 09/janv./2007 14:11
par Progi1984
Ces réécritures m'intéressent....
MSN & MP & Mail sont à ton service