Voici Rosa un petit soft pour les personnes qui se pèsent on entre la date et le poids , c'est une première version , je sais qu'il y a pas mal d'erreur mais j"'ai réappris PB au passage .....

Code : Tout sélectionner
;**** Rosa by jean-bernard ****
EnableExplicit
;-- Fenetres
Enumeration windows
#Form_Main
#Form_Ajoute
EndEnumeration
;-- Gadgets
Enumeration gadgets
#List_Poids
#Button_Ajouter
#Button_Sauver
#Button_Effacer
#Button_Valider
#Button_Annuler
#Cadre
#Text_Date
#Text_Poids
#Champ_Date
#Champ_Poids
#Font_List
#Font_Button
#Font_Champ
#File
EndEnumeration
;-- Liste pour ajouter une date et un poids
Structure Gestion
Date.s
Poids.s
EndStructure
Global NewList Poids.Gestion()
;-- Fonts
LoadFont(#Font_List, "Arial",12, #PB_Font_Bold)
LoadFont(#Font_Champ, "Arial",10, #PB_Font_Bold)
LoadFont(#Font_Button, "Times New Roman",10, #PB_Font_Bold)
;-- Variables
Global quitter
;-- Procedures
;-- Fermer ou quitter le programme
Procedure Close()
quitter = EventWindow()
CloseWindow(quitter)
If quitter=#Form_Main
End
EndIf
EndProcedure
;-- Procedure ajoute une date et un poids
Procedure.b Ajoute_Poids()
LastElement(Poids())
If AddElement(Poids())
Poids()\Date=GetGadgetText(#Champ_Date)
Poids()\Poids=GetGadgetText(#Champ_Poids)
AddGadgetItem(#List_poids,-1,Poids()\Date+Chr(10)+Poids()\Poids+Chr(10))
EndIf
CloseWindow(#Form_Ajoute)
ProcedureReturn
EndProcedure
;-- Fenetre pour ajouter une date et un poids
Procedure Ajoute()
OpenWindow(#form_Ajoute,0,0,320,330,"Ajouter un poids",#PB_Window_TitleBar|#PB_Window_ScreenCentered)
SetWindowColor(#Form_Ajoute, $E16941) ;
FrameGadget(#Cadre,10,10,300,250,"")
TextGadget(#Text_Date,90,70,120,30,"Date --> J/M/A :",#PB_Text_Center)
StringGadget(#Champ_Date,110,90,80,20,"")
TextGadget(#Text_Poids,90,150,120,30,"Poids :",#PB_Text_Center)
StringGadget(#Champ_Poids,125,170,50,20,"")
SetGadgetFont(#Text_Date,FontID(#Font_List))
SetGadgetFont(#Text_Poids,FontID(#Font_List))
SetGadgetColor(#Text_Date, #PB_Gadget_FrontColor,$00FFF6)
SetGadgetColor(#Text_Poids, #PB_Gadget_FrontColor,$00FFF6)
SetGadgetColor(#Text_Date, #PB_Gadget_BackColor, $E16941)
SetGadgetColor(#Text_Poids, #PB_Gadget_BackColor, $E16941)
SetGadgetFont(#Champ_Date,FontID(#Font_Champ))
SetGadgetFont(#Champ_Poids,FontID(#Font_Champ))
ButtonGadget(#Button_Valider,20,280,100,30,"Valider")
GadgetToolTip(#Button_Valider, "Ajoute la date et le poids à la liste ")
ButtonGadget(#Button_Annuler,200,280,100,30,"Annuler")
GadgetToolTip(#Button_Annuler, "Annule la saisie et retour à la liste ")
SetGadgetFont(#Button_Valider,FontID(#Font_Button))
SetGadgetFont(#Button_Annuler,FontID(#Font_Button))
BindGadgetEvent(#Button_Valider,@Ajoute_Poids())
BindGadgetEvent( #Button_Annuler,@Close())
BindEvent(#PB_Event_CloseWindow,@Close(),#Form_Ajoute)
EndProcedure
;--Procedure de sauvegarde du fichier
Procedure Sauver()
ResetList(Poids())
CreateFile(#File,"Rosa.dat")
ForEach Poids()
WriteStringN(#File,Poids()\Date)
WriteStringN(#File,Poids()\Poids)
Next
CloseFile(#File)
MessageRequester("Information","Fichier Sauvegarder!",#PB_MessageRequester_Info)
EndProcedure
;-- Procedure pour Charger la liste au demarrage du programme
Procedure ChargeList()
If OpenFile(#File,"Rosa.dat")<>0
ResetList(Poids())
OpenFile(#File,"Rosa.dat")
While Eof(#File)=0
If AddElement(Poids())
Poids()\Date=ReadString(#File)
Poids()\Poids=ReadString(#File)
AddGadgetItem(#List_poids,-1,Poids()\Date+Chr(10)+Poids()\Poids+Chr(10))
EndIf
Wend
CloseFile(#File)
EndIf
EndProcedure
;--Procedure d'effacement d'un poids de la liste
Procedure Effacer()
Protected p,Total_Poids.l
Total_Poids = CountGadgetItems(#List_Poids)-1
For p = Total_Poids To 0 Step -1
If GetGadgetItemState(#List_Poids,p)&#PB_ListIcon_Checked
RemoveGadgetItem(#List_Poids,p)
SelectElement(Poids(),p)
DeleteElement(Poids())
EndIf
Next p
EndProcedure
;-- Fenetre main
Procedure open_Main()
OpenWindow(#Form_Main,0,0,500,420,"ROSA",#PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
SetWindowColor(#Form_Main, $E16941) ;
ListIconGadget(#List_Poids,10,100,480,280,"DATE : ",280, #PB_ListIcon_GridLines|#PB_ListIcon_CheckBoxes)
AddGadgetColumn(#List_Poids,1,"POIDS :",200)
SetGadgetColor(#List_Poids, #PB_Gadget_FrontColor,$FFFFFF)
SetGadgetColor(#List_Poids, #PB_Gadget_BackColor, $5C3AB2)
SetGadgetFont(#List_Poids,FontID(#Font_List))
ButtonGadget(#Button_Ajouter,20,10,100,20,"AJOUTER")
GadgetToolTip(#Button_Ajouter, "Ajoute une pesée à la liste ")
ButtonGadget(#Button_Sauver,195,10,100,20,"SAUVEGARDER")
GadgetToolTip(#Button_Sauver, "Enregistre la liste ")
ButtonGadget(#Button_Effacer,380,10,100,20,"EFFACER")
GadgetToolTip(#Button_Effacer, "Supprime un poids de la liste en cochant la case ")
SetGadgetFont(#Button_Ajouter,FontID(#Font_Button))
SetGadgetFont(#Button_Sauver,FontID(#Font_Button))
SetGadgetFont(#Button_Effacer,FontID(#Font_Button))
BindEvent(#PB_Event_CloseWindow,@Close(),#Form_Main)
BindGadgetEvent(#Button_Ajouter,@Ajoute())
BindGadgetEvent(#Button_Sauver,@Sauver())
BindGadgetEvent(#Button_Effacer,@Effacer())
EndProcedure
;-- Boucle du programme
open_Main()
ChargeList()
Repeat
WaitWindowEvent()
ForEver