[Réédit] Code corrigé et fonctionnel !
Code : Tout sélectionner
DeclareModule Tension
Enumeration
#Fenetre_principale
#Fenetre
EndEnumeration
Enumeration
#Texte_Tension
#Chaine_Tension
#Texte_Intensite
#Chaine_Intensite
#Texte_Resistance
#Chaine_Resistance
#Bouton_Convertir
#Frame3D_Resultat
#Chaine_Resultat
EndEnumeration
Declare Ouvrir_Fenetre()
EndDeclareModule
DeclareModule Intensite
Enumeration
#Fenetre_principale
#Fenetre
EndEnumeration
Enumeration
#Texte_Tension
#Chaine_Tension
#Texte_Intensite
#Chaine_Intensite
#Texte_Resistance
#Chaine_Resistance
#Bouton_Convertir
#Frame3D_Resultat
#Chaine_Resultat
EndEnumeration
Declare Ouvrir_Fenetre()
EndDeclareModule
DeclareModule Resistance
Enumeration
#Fenetre_principale
#Fenetre
EndEnumeration
Enumeration
#Texte_Tension
#Chaine_Tension
#Texte_Intensite
#Chaine_Intensite
#Texte_Resistance
#Chaine_Resistance
#Bouton_Convertir
#Frame3D_Resultat
#Chaine_Resultat
EndEnumeration
Declare Ouvrir_Fenetre()
EndDeclareModule
Enumeration
#Fenetre_principale
EndEnumeration
;}
;{ Gadgets
Enumeration
#Texte_Tension
#Chaine_Tension
#Texte_Intensite
#Chaine_Intensite
#Texte_Resistance
#Chaine_Resistance
#Bouton_Convertir
#Frame3D_Resultat
#Chaine_Resultat
#Conteneur_0
#Option_Tension
#Option_Intensite
#Option_Resistance
#Image_UIR
EndEnumeration
;}
Global Tension.f, Intensite.f, Resistance.f
Global FichierImage1$ = "D:\Programmation\Prg perso\Gfx\UIR.png"
UsePNGImageDecoder()
Procedure Ouvrir_Fenetre()
If OpenWindow(#Fenetre_principale, 450, 200, 400, 400, "Loi d'Ohm", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
ContainerGadget(#Conteneur_0, 85, 270, 245, 110, #PB_Container_BorderLess)
OptionGadget(#Option_Tension, 40, 25, 245, 15, "Calcul de la tension en Volts")
OptionGadget(#Option_Intensite, 40, 45, 245, 15, "Calcul de l'intensité en Ampères")
OptionGadget(#Option_Resistance, 40, 65, 245, 15, "Calcul de la résistance en Ohms")
CloseGadgetList()
SetWindowColor(#Fenetre_principale, $E0E0E0)
Resultat = CreateImage(#Image_UIR, 185, 227)
If Resultat
Resultat = LoadImage(#Image_UIR, FichierImage1$)
If Resultat
ResizeImage(#Image_UIR,355,227)
ImageGadget(#Image_UIR, 20,25,380,227, ImageID(#Image_UIR))
EndIf
EndIf
EndIf
EndProcedure
Module Tension
Procedure Ouvrir_Fenetre()
If OpenWindow(#Fenetre, 450, 200, 400, 400, "Loi d'Ohm - Tension", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar, #Fenetre_principale)
TextGadget(#Texte_Resistance, 25, 50, 105, 15, "Résistance en Ohms :")
TextGadget(#Texte_Intensite, 20, 90, 110, 15, "Intensité en Ampères :")
StringGadget(#Chaine_Resistance, 160, 45, 175, 25, "")
StringGadget(#Chaine_Intensite, 160, 90, 175, 25, "")
ButtonGadget(#Bouton_Convertir, 50, 160, 300, 30, "Convertir")
Frame3DGadget(#Frame3D_Resultat, 30, 230, 335, 130, "Résultat")
StringGadget(#Chaine_Resultat, 50, 280, 300, 35, "", #PB_String_ReadOnly)
;SetWindowColor(#Fenetre_Tension, $FF80FF)
EndIf
EndProcedure
EndModule
Module Intensite
Procedure Ouvrir_Fenetre()
If OpenWindow(#Fenetre, 450, 200, 400, 400, "Loi d'Ohm - Intensité", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar, #Fenetre_principale)
TextGadget(#Texte_Tension, 25, 50, 105, 15, "Tension en volts :")
TextGadget(#Texte_Resistance, 20, 90, 110, 15, "Résistance en Ohms :")
StringGadget(#Chaine_Tension, 160, 45, 175, 25, "")
StringGadget(#Chaine_Resistance, 160, 90, 175, 25, "")
ButtonGadget(#Bouton_Convertir, 50, 160, 300, 30, "Convertir")
Frame3DGadget(#Frame3D_Resultat, 30, 230, 335, 130, "Résultat")
StringGadget(#Chaine_Resultat, 50, 280, 300, 35, "", #PB_String_ReadOnly)
;SetWindowColor(#Fenetre_Intensite, $80FFFF)
EndIf
EndProcedure
EndModule
Module Resistance
Procedure Ouvrir_Fenetre()
If OpenWindow(#Fenetre, 450, 200, 400, 400, "Loi d'Ohm - Résistance", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar, #Fenetre_principale)
TextGadget(#Texte_Tension, 25, 50, 105, 15, "Tension en volts :")
TextGadget(#Texte_Intensite, 20, 90, 110, 15, "Intensité en Ampères :")
StringGadget(#Chaine_Tension, 160, 45, 175, 25, "")
StringGadget(#Chaine_Intensite, 160, 90, 175, 25, "")
ButtonGadget(#Bouton_Convertir, 50, 160, 300, 30, "Convertir")
Frame3DGadget(#Frame3D_Resultat, 30, 230, 335, 130, "Résultat")
StringGadget(#Chaine_Resultat, 50, 280, 300, 35, "", #PB_String_ReadOnly)
;SetWindowColor(#Fenetre_Resistance, $FF8080)
EndIf
EndProcedure
EndModule
Ouvrir_Fenetre()
Repeat
Select WaitWindowEvent()
; ///////////////////
Case #PB_Event_Gadget
Select EventGadget()
Case #Option_Tension
Resultat = 1
Tension::Ouvrir_Fenetre()
Case #Option_Intensite
Resultat = 2
Intensite::Ouvrir_Fenetre()
Case #Option_Resistance
Resultat = 3
Resistance::Ouvrir_Fenetre()
Case #Bouton_Convertir
If Resultat = 1
R.f = ValF(GetGadgetText(#Chaine_Resistance))
I.f = ValF(GetGadgetText(#Chaine_Intensite))
SetGadgetText(#Chaine_Resultat, "La Tension est de " + StrF(R * I, 2)+" Volts")
EndIf
If Resultat = 2
U.f = ValF(GetGadgetText(#Chaine_Tension))
R.f = ValF(GetGadgetText(#Chaine_Resistance))
SetGadgetText(#Chaine_Resultat, "L'intensité est de " + StrF(U / R, 2)+" Ampères")
EndIf
If Resultat = 3
U.f = ValF(GetGadgetText(#Chaine_Tension))
I.f = ValF(GetGadgetText(#Chaine_Intensite))
SetGadgetText(#Chaine_Resultat, "La résistance est de " + StrF(U / I, 2)+" Ohms")
EndIf
EndSelect
; ////////////////////////
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Fenetre_principale
CloseWindow(#Fenetre_principale)
Break
Case Tension::#Fenetre
CloseWindow(Tension::#Fenetre)
Case Intensite::#Fenetre
CloseWindow(Intensite::#Fenetre)
Case Resistance::#Fenetre
CloseWindow(Resistance::#Fenetre)
EndSelect
EndSelect
ForEver