Flype - UserLibraries pour PureBasic 4.0

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message 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.
@+
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Good07
Messages : 308
Inscription : ven. 23/avr./2004 18:08
Localisation : Hérault 34190 Laroque

Message par Good07 »

Bonsoir Jacobus.

Merci pour ton aide, effectivement comme ça ça marche nickel. :D

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 +
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Mais ça n'avance pas vite car j'ai très peu de temps pour vraiment programmer
M'en parle pas :roll: 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. :D
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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 çà :wink:
Image
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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.
Image
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message 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.
Good07
Messages : 308
Inscription : ven. 23/avr./2004 18:08
Localisation : Hérault 34190 Laroque

Message par Good07 »

Merci Flype pour cette nouvelle version. :D
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...
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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() ?
Image
Good07
Messages : 308
Inscription : ven. 23/avr./2004 18:08
Localisation : Hérault 34190 Laroque

Message 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. :D
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

tant mieux :wink:

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.
Image
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message 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 ?
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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.
Image
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message 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 :

Code : Tout sélectionner

<Abstract>truc</abstract>
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 ?
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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.
Image
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Ces réécritures m'intéressent....

MSN & MP & Mail sont à ton service
Répondre