Nouveau
Publié : lun. 13/mai/2013 23:25
Bonjour, bonsoir plutôt. Il y a 25ans je ne connaissais que QBasic, amstrad et un peu d'assembleur sur "AIM65"". j'ai découvert PB, et je reconnais qu'il faut s'y plonger. J'ai écris mon premier petit prog, un peu finalisé. Si quelqu'un peut me donner son opinion, ???
Code : Tout sélectionner
;
; ===================================================================
; CalcSouitFinal_10_Cst_Enum.pb
; Liste: -Constantes/-Variables/-Fonts/-etc
; Recopier pour un seul fichier
; ===================================================================
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- MenuBar Constants
;
Enumeration
#MenuBar_0
EndEnumeration
Enumeration
#MENU_1
#MENU_2
#MENU_3
EndEnumeration
;- Gadget Constants
;
Enumeration
#String_0
#String_1
#String_2
#String_3
#String_4
#String_5
#String_6
#String_7
#String_8
#String_10
#String_11
#String_12
#String_14
#String_15
#String_16
#String_17
#String_18
#String_19
#String_20
#String_21
#String_22
#String_23
#String_24
#String_25
#String_27
#String_28
#String_29
#String_30
#String_31
#String_32
#String_33
#String_34
#String_35
#String_36
#String_37
#String_38
#String_40
#String_41
EndEnumeration
Global Nbr25$, Nbr33$, Nbr37$, Nbr50$, Nbr66$,Nbr75$, Nbr100$, Nbr5f$,Nbr20f$, Nbr30f$, Nbr50f$, TotalSout$
Global Nbr25,Nbr33, Nbr37, Nbr50, Nbr66, Nbr75, Nbr100, Nbr5f, Nbr20f, Nbr30f, Nbr50f
Global Tot25, Tot33, Tot37, Tot50, Tot66, Tot75, Tot100, Tot5f, Tot20f, Tot30f,Tot50f, Total
;- Fonts
Global FontID1
FontID1 = LoadFont(1, "Arial", 9, #PB_Font_Bold)
Global FontID3
FontID3 = LoadFont(3, "Courier", 10, #PB_Font_Bold)
; =======================================================================
; CalcSoutFinal_10_Inc.pb
; Les procedures
; recopier pour un seul fichier
; =======================================================================
Procedure Open_Window_0()
If OpenWindow(#Window_0, 224, 59, 487, 451, "Volume d'un embouteillage (bouteilles et fûts)", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_WindowCentered )
If CreateMenu(#MenuBar_0, WindowID(#Window_0))
MenuTitle("Infos")
MenuItem(#MENU_1, "Notes")
MenuBar()
MenuItem(#MENU_2, "A propos ...")
MenuBar()
MenuItem(#MENU_3, "Quitter")
EndIf
If CreateGadgetList(WindowID(#Window_0))
StringGadget(#String_0, 65, 45, 135, 25, "Contidionnement", #PB_String_ReadOnly)
SetGadgetFont(#String_0, FontID1)
StringGadget(#String_1, 65, 70, 135, 25, " Bouteilles de 25 cl.", #PB_String_ReadOnly)
StringGadget(#String_2, 65, 95, 135, 25, " Bouteilles de 33 cl.", #PB_String_ReadOnly)
StringGadget(#String_3, 65, 120, 135, 25, " Bouteilles de 37,5 cl.", #PB_String_ReadOnly)
StringGadget(#String_4, 65, 145, 135, 25, " Bouteilles de 50 cl.", #PB_String_ReadOnly)
StringGadget(#String_5, 65, 170, 135, 25, " Bouteilles de 66 cl.", #PB_String_ReadOnly)
StringGadget(#String_6, 65, 195, 135, 25, " Bouteilles de 75 cl.", #PB_String_ReadOnly)
StringGadget(#String_7, 65, 220, 135, 25, " Bouteilles de 100 cl.", #PB_String_ReadOnly)
StringGadget(#String_8, 65, 245, 135, 25, " Fûts de 5 l.", #PB_String_ReadOnly)
StringGadget(#String_10, 65, 270, 135, 25, " Fûts de 20 l.", #PB_String_ReadOnly)
StringGadget(#String_11, 65, 295, 135, 25, " Fûts de 30 l.", #PB_String_ReadOnly)
StringGadget(#String_12, 65, 320, 135, 25, " Fûts de 50 l.", #PB_String_ReadOnly)
StringGadget(#String_14, 200, 45, 100, 25, " Nbr. d'unit.", #PB_String_ReadOnly)
SetGadgetFont(#String_14, FontID1)
StringGadget(#String_15, 200, 70, 100, 25, "", #PB_String_Numeric)
StringGadget(#String_16, 200, 95, 100, 25, "", #PB_String_Numeric)
StringGadget(#String_17, 200, 120, 100, 25, "", #PB_String_Numeric)
StringGadget(#String_18, 200, 145, 100, 25, "", #PB_String_Numeric)
StringGadget(#String_19, 200, 170, 100, 25, "", #PB_String_Numeric)
StringGadget(#String_20, 200, 195, 100, 25, "", #PB_String_Numeric)
StringGadget(#String_21, 200, 220, 100, 25, "", #PB_String_Numeric)
StringGadget(#String_22, 200, 245, 100, 25, "", #PB_String_Numeric)
StringGadget(#String_23, 200, 270, 100, 25, "", #PB_String_Numeric)
StringGadget(#String_24, 200, 295, 100, 25, "", #PB_String_Numeric)
StringGadget(#String_25, 200, 320, 100, 25, "", #PB_String_Numeric)
StringGadget(#String_27, 300, 45, 115, 25, " Vol. en litres", #PB_String_ReadOnly); | #PB_String_Numeric)
SetGadgetFont(#String_27, FontID1)
StringGadget(#String_28, 300, 70, 115, 25, "", #PB_String_ReadOnly | #PB_String_Numeric)
SetGadgetFont(#String_28, FontID3)
StringGadget(#String_29, 300, 95, 115, 25, "", #PB_String_ReadOnly | #PB_String_Numeric)
SetGadgetFont(#String_29, FontID3)
StringGadget(#String_30, 300, 120, 115, 25, "", #PB_String_ReadOnly | #PB_String_Numeric)
SetGadgetFont(#String_30, FontID3)
StringGadget(#String_31, 300, 145, 115, 25, "", #PB_String_ReadOnly | #PB_String_Numeric)
SetGadgetFont(#String_31, FontID3)
StringGadget(#String_32, 300, 170, 115, 25, "", #PB_String_ReadOnly | #PB_String_Numeric)
SetGadgetFont(#String_32, FontID3)
StringGadget(#String_33, 300, 195, 115, 25, "", #PB_String_ReadOnly | #PB_String_Numeric)
SetGadgetFont(#String_33, FontID3)
StringGadget(#String_34, 300, 220, 115, 25, "", #PB_String_ReadOnly | #PB_String_Numeric)
SetGadgetFont(#String_34, FontID3)
StringGadget(#String_35, 300, 245, 115, 25, "", #PB_String_ReadOnly | #PB_String_Numeric)
SetGadgetFont(#String_35, FontID3)
StringGadget(#String_36, 300, 270, 115, 25, "", #PB_String_ReadOnly | #PB_String_Numeric)
SetGadgetFont(#String_36, FontID3)
StringGadget(#String_37, 300, 295, 115, 25, "", #PB_String_ReadOnly | #PB_String_Numeric)
SetGadgetFont(#String_37, FontID3)
StringGadget(#String_38, 300, 320, 115, 25, "", #PB_String_ReadOnly | #PB_String_Numeric)
SetGadgetFont(#String_38, FontID3)
StringGadget(#String_40, 65, 360, 235, 25, " Total du volume en litres", #PB_String_ReadOnly)
SetGadgetFont(#String_40, FontID1)
StringGadget(#String_41, 300, 360, 115, 25, "", #PB_String_ReadOnly)
SetGadgetFont(#String_41, FontID3)
EndIf
EndIf
EndProcedure
Procedure Total_Soutirre()
If Nbr25$ = ""
Nbr25 = 0
EndIf
If Nbr33$ = ""
Nbr33 = 0
EndIf
If Nbr37$ = ""
Nbr37= 0
EndIf
If Nbr50$ = ""
Nbr50 = 0
EndIf
If Nbr66$ = ""
Nbr66 = 0
EndIf
If Nbr75$ = ""
Nbr75 = 0
EndIf
If Nbr100$ = ""
Nbr100= 0
EndIf
If Nbr5f$ = ""
Nbr5f = 0
EndIf
If Nbr20f$ = ""
Nbr20f = 0
EndIf
If Nbr30f$ = ""
Nbr30f= 0
EndIf
If Nbr50f$ = ""
Nbr50f = 0
EndIf
Total=Tot25 + Tot33 + Tot37 + Tot50 + Tot66 + Tot75 + Tot100 + Tot5f +Tot20f + Tot30f +Tot50f
TotalSout$ =Str(Total)
Longueur = Len(TotalSout$)
NouveauTot$ = Space(8 - Longueur) + TotalSout$
TotalSout$ = NouveauTot$
SetGadgetColor(#String_41, #PB_Gadget_BackColor, $00FFFF)
SetGadgetColor(#String_41, #PB_Gadget_FrontColor, $000000)
SetGadgetText(#String_41, TotalSout$)
EndProcedure
Procedure Bt_25cl()
Nbr25$ = GetGadgetText(#String_15)
Nbr25 = Val(Nbr25$)
If Nbr25 >= 132000
MessageRequester("Information", "Le nombre de bts. de 25 cl. est limité à 132000", #PB_MessageRequester_Ok)
Nbr25$ = ""
SetGadgetText(#String_15, Nbr25$)
Tot25$ =""
SetGadgetText(#String_28, Tot25$)
Nbr25 = 0
EndIf
Tot25= (Val(Nbr25$)) * 0.25
Tot25$ =Str(Tot25)
Longueur = Len(Tot25$)
NouveauTot25$ = Space(8 - Longueur) + Tot25$
Tot25$ = NouveauTot25$
SetGadgetText(#String_28, Tot25$)
Total_Soutirre()
EndProcedure
Procedure Bt_33cl()
Nbr33$ = GetGadgetText(#String_16)
Nbr33 = Val(Nbr33$)
If Nbr33 >= 99000
MessageRequester("Information", "Le nombre de 33cl. est limité à 99000bts.", #PB_MessageRequester_Ok)
Nbr33$ = ""
SetGadgetText(#String_16, Nbr33$)
Tot33$ =""
SetGadgetText(#String_29, Tot33$)
Nbr33 = 0
EndIf
Tot33 = (Val(Nbr33$)) * 0.33
Tot33$ =Str(Tot33)
Tot33$ = Space(8 -Len(Tot33$)) +Tot33$
SetGadgetText(#String_29, Tot33$)
Total_Soutirre()
EndProcedure
Procedure Bt_37cl()
Nbr37$ = GetGadgetText(#String_17)
Nbr37 = Val(Nbr37$)
If Nbr37 >= 88000
MessageRequester("Information", "Le nombre de 37,5cl. est limité à 88000bts.", #PB_MessageRequester_Ok)
Nbr37$ = ""
SetGadgetText(#String_17, Nbr37$)
Tot37$ =""
SetGadgetText(#String_30, Tot37$)
Nbr37 = 0
EndIf
Tot37 = (Val(Nbr37$)) * 0.375
Tot37$ =Str(Tot37)
Tot37$ = Space(8 -Len(Tot37$)) +Tot37$
SetGadgetText(#String_30, Tot37$)
Total_Soutirre()
EndProcedure
Procedure Bt_50cl()
Nbr50$ = GetGadgetText(#String_18)
Nbr50 = Val(Nbr50$)
If Nbr50 >= 66000
MessageRequester("Information", "Le nombre de 50cl. est limité à 66000bts.", #PB_MessageRequester_Ok)
Nbr50$ = ""
SetGadgetText(#String_18, Nbr37$)
Tot50$ =""
SetGadgetText(#String_31, Tot37$)
Nbr50 = 0
EndIf
Tot50 = (Val(Nbr50$)) * 0.5
Tot50$ =Str(Tot50)
Tot50$ = Space(8 -Len(Tot50$)) +Tot50$
SetGadgetText(#String_31, Tot50$)
Total_Soutirre()
EndProcedure
Procedure Bt_66cl()
Nbr66$ = GetGadgetText(#String_19)
Nbr66 = Val(Nbr66$)
If Nbr66 >= 50000
MessageRequester("Information", "Le nombre de 66cl. est limité à 50000bts.", #PB_MessageRequester_Ok)
Nbr66$ = ""
SetGadgetText(#String_19, Nbr66$)
Tot66$ =""
SetGadgetText(#String_32, Tot66$)
Nbr66 = 0
EndIf
Tot66 = (Val(Nbr66$)) * 0.66
Tot66$ =Str(Tot66)
Tot66$ = Space(8 -Len(Tot66$)) +Tot66$
SetGadgetText(#String_32, Tot66$)
Total_Soutirre()
EndProcedure
Procedure Bt_75cl()
Nbr75$ = GetGadgetText(#String_20)
Nbr75 = Val(Nbr75$)
If Nbr75 >= 44000
MessageRequester("Information", "Le nombre de bts. de 75 cl. est limité à 44000", #PB_MessageRequester_Ok)
Nbr75$ = ""
SetGadgetText(#String_20, Nbr75$)
Tot75$ =""
SetGadgetText(#String_33, Tot75$)
Nbr75 = 0
EndIf
Tot75= (Val(Nbr75$)) * 0.75
Tot75$ =Str(Tot75)
Longueur = Len(Tot75$)
NouveauTot75$ = Space(8 - Longueur) + Tot75$
Tot75$ = NouveauTot75$
SetGadgetText(#String_33, Tot75$)
Total_Soutirre()
EndProcedure
Procedure Bt_100cl()
Nbr100$ = GetGadgetText(#String_21)
Nbr100 = Val(Nbr100$)
If Nbr100 >= 33000
MessageRequester("Information", "Le nombre de bts. de 100 cl. est limité à 33000", #PB_MessageRequester_Ok)
Nbr100$ = ""
SetGadgetText(#String_21, Nbr100$)
Tot100$ =""
SetGadgetText(#String_34, Tot100$)
Nbr100 = 0
EndIf
Tot100= (Val(Nbr100$)) * 1
Tot100$ =Str(Tot100)
Longueur = Len(Tot100$)
NouveauTot100$ = Space(8 - Longueur) + Tot100$
Tot100$ = NouveauTot100$
SetGadgetText(#String_34, Tot100$)
Total_Soutirre()
EndProcedure
Procedure Fut_5l()
Nbr5f$ = GetGadgetText(#String_22)
Nbr5f = Val(Nbr5f$)
If Nbr5f >= 6600
MessageRequester("Information", "Le nombre de fûts de 5 ltr. est limité à 6600", #PB_MessageRequester_Ok)
Nbr5f$ = ""
SetGadgetText(#String_22, Nbr5f$)
Tot5f$ =""
SetGadgetText(#String_35, Tot5f$)
Nbr5f = 0
EndIf
Tot5f= (Val(Nbr5f$)) * 5
Tot5f$ =Str(Tot5f)
Longueur = Len(Tot5f$)
NouveauTot5f$ = Space(8 - Longueur) + Tot5f$
Tot5f$ = NouveauTot5f$
SetGadgetText(#String_35, Tot5f$)
Total_Soutirre()
EndProcedure
Procedure Fut_20l()
Nbr20f$ = GetGadgetText(#String_23)
Nbr20f = Val(Nbr20f$)
If Nbr20f >= 1650
MessageRequester("Information", "Le nombre de fûts de 20 ltr. est limité à 1650", #PB_MessageRequester_Ok)
Nbr20f$ = ""
SetGadgetText(#String_23, Nbr20f$)
Tot20f$ =""
SetGadgetText(#String_36, Tot20f$)
Nbr20f = 0
EndIf
Tot20f = (Val(Nbr20f$)) * 20
Tot20f$ =Str(Tot20f)
Longueur = Len(Tot20f$)
NouveauTot20f$ = Space(8 - Longueur) + Tot20f$
Tot20f$ = NouveauTot20f$
SetGadgetText(#String_36, Tot20f$)
Total_Soutirre()
EndProcedure
Procedure Fut_30l()
Nbr30f$ = GetGadgetText(#String_24)
Nbr30f = Val(Nbr30f$)
If Nbr30f >= 1100
MessageRequester("Information", "Le nombre de fûts de 30 ltr. est limité à 1100", #PB_MessageRequester_Ok)
Nbr30f$ = ""
SetGadgetText(#String_24, Nbr30f$)
Tot30f$ =""
SetGadgetText(#String_37, Tot30f$)
Nbr30f = 0
EndIf
Tot30f = (Val(Nbr30f$)) * 30
Tot30f$ =Str(Tot30f)
Longueur = Len(Tot30f$)
NouveauTot30f$ = Space(8 - Longueur) + Tot30f$
Tot30f$ = NouveauTot30f$
SetGadgetText(#String_37, Tot30f$)
Total_Soutirre()
EndProcedure
Procedure Fut_50l()
Nbr50f$ = GetGadgetText(#String_25)
Nbr50f = Val(Nbr50f$)
If Nbr50f >= 660
MessageRequester("Information", "Le nombre de fûts de 50 ltr. est limité à 660", #PB_MessageRequester_Ok)
Nbr50f$ = ""
SetGadgetText(#String_25, Nbr50f$)
Tot50f$ =""
SetGadgetText(#String_38, Tot50f$)
Nbr50f = 0
EndIf
Tot50f = (Val(Nbr50f$)) * 50
Tot50f$ =Str(Tot50f)
Longueur = Len(Tot50f$)
NouveauTot50f$ = Space(8 - Longueur) + Tot50f$
Tot50f$ = NouveauTot50f$
SetGadgetText(#String_38, Tot50f$)
Total_Soutirre()
EndProcedure
;========================================================================================
;===============================Programme principal =====================================
;========================================================================================
;IncludeFile "CalcSoutFinal_10_Cst_Enum.pb" ;constantes, enum et compagnie
;IncludeFile "CalcSoutFinal_10_Inc.pb" ;les procedures
;========================================================================================
Open_Window_0()
Repeat ; boucle principale
Event_De_Win_OS = WaitWindowEvent() ; Reçu de Window_OS
WindowID = EventWindow() ; La fenètre concernée
GadgetID = EventGadget() ; Le gadget concerné
EventType = EventType() ; Type d'évènement
;Code menu
If Event_De_Win_OS = #PB_Event_Menu
MenuID = EventMenu()
If MenuID = #MENU_1
MessageRequester("Note !", "La valeur dans la colonne [Nbr. d'unit.] est limitée à " + Chr(10) + " " + Chr(10) + " 132 000 pour les btls. de 25 cl." + Chr(10) + " 99 000 pour les btls. de 33 cl." + Chr(10) + " 88 000 pour les btls. de 37,5 cl." + Chr(10) + " 66 000 pour les btls. de 50 cl." + Chr(10) + " 50 000 pour les btls. de 66 cl. " + Chr(10) + " 44 000 pour les btls. de 75 cl." + Chr(10) + " 33 000 pour les btls. de 100 cl." + Chr(10) + " 6 600 pour les fûts de 5 ltrs. " + Chr(10) + " 1 650 pour les fûts de 20 ltrs." + Chr(10) + " 1 100 pour les fûts de 30 trs." + Chr(10) + " 660 pour les fûts de 50 ltrs." + Chr(10) + "" + Chr(10) + "Dans la colonne [Vol. en litres], le produit est " + Chr(10) + "arrondi au litre le plus proche." + Chr(10) + "", #MB_OK|#MB_ICONWARNING)
ElseIf MenuID = #MENU_2
MessageRequester("Info !", " " + Chr(10) + " Compiler avec PureBasic 5.11 " + Chr(10) + " " + Chr(10) + " Site : www.purebasic.com/french/index.php " + Chr(10) + "" + Chr(10) + " Auteur R-Skr - Mai 2013", #MB_OK|#MB_ICONINFORMATION|#MB_DEFBUTTON3)
ElseIf MenuID = #MENU_3
End
EndIf
EndIf
;Code Gadget
If Event_De_Win_OS = #PB_Event_Gadget
If GadgetID = #String_15;------------------------------------------------------------ BTL 25cl
Bt_25cl()
ElseIf GadgetID = #String_16;-------------------------------------------------BTL 33cl
Bt_33cl()
ElseIf GadgetID = #String_17;---------------------------------------------------BTL 37,5cl
Bt_37cl()
ElseIf GadgetID = #String_18;---------------------------------------------------BTL 50cl
Bt_50cl()
ElseIf GadgetID = #String_19;---------------------------------------------------BTL 66cl
Bt_66cl()
ElseIf GadgetID = #String_20;---------------------------------------------------BTL 75cl
Bt_75cl()
ElseIf GadgetID = #String_21;---------------------------------------------------BTL 100cl
Bt_100cl()
ElseIf GadgetID = #String_22;---------------------------------------------------FU 5 L
Fut_5l()
ElseIf GadgetID = #String_23;---------------------------------------------------FU 20 L
Fut_20l()
ElseIf GadgetID = #String_24;---------------------------------------------------FU 30 L
Fut_30l()
ElseIf GadgetID = #String_25;---------------------------------------------------FU 50 L
Fut_50l()
; ElseIf GadgetID = #String_41
EndIf
EndIf
Until Event_De_Win_OS = #PB_Event_CloseWindow ; Fin de la boucle principale
End
; ================================ Fin ========================================