Convertisseur de températures automatique

Programmation d'applications complexes
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Convertisseur de températures automatique

Message par Micoute »

Bonjour à tous, voici un utilitaire bien utile, puisqu'il convertit n'importe quelle unité de température en toutes les autres.

Le principe est simple ; vous cliquez sur la croix correspondant à l'unité que vous voulez convertir et la conversion est automatique.

Je ne vous le vend pas à 500€, ni même à 100€ et pas plus à 50€, non je vous l'offre gracieusement !

Faites-en bon usage.

Code : Tout sélectionner

;Convertisseur de températures automatique
EnableExplicit
;{- Enumerations
Enumeration Fenetres
  #Fenetre_principale
EndEnumeration

Enumeration Gadgets
  #Str_Celsius
  #Str_Fahrenheit
  #Str_Kelvin
  #Str_Rankine
  #Str_Reaumur
  #Str_Delisle
  #Str_Romer
  #Str_Newton
  #Txt_Celsius
  #Txt_Fahrenheit
  #Txt_Kelvin
  #Txt_Rankine
  #Txt_Reaumur
  #Txt_Delisle
  #Txt_Romer
  #Txt_Newton
  #Txt_Titre
  #Btn_Celsius
  #Btn_Fahrenheit
  #Btn_Kelvin
  #Btn_Rankine
  #Btn_Reaumur
  #Btn_Delisle
  #Btn_Romer
  #Btn_Newton
EndEnumeration

Enumeration Polices
  #Police_0
EndEnumeration

Enumeration constantes
  #C  ; Celsius
  #F  ; Fahrenheit
  #K  ; Kelvin
  #Ra ; Rankine
  #Re ; Réaumur
  #De ; Delisle
  #Ro ; Romer
  #N  ; Newton
EndEnumeration
;}
;{- Déclarations
Global.f TempEntree, TempSortie

Global.i Event, Entree, Sortie, i

Declare.f Convertir_temperature(TempEntree.f, TypeEntre, TypeSorti)
;}

Procedure Celsius()
  TempEntree = ValF(GetGadgetText(#Str_Celsius))
  Entree = #C
  ;Sortie = #C
  ;TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  ;SetGadgetText(#Str_Celsius,StrF(TempSortie,2))
  Sortie = #F
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Fahrenheit,StrF(TempSortie,2))
  Sortie = #K
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Kelvin,StrF(TempSortie,2))
  Sortie = #Ra
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Rankine,StrF(TempSortie,2))
  Sortie = #Re
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Reaumur,StrF(TempSortie,2))
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  Sortie = #De
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Delisle,StrF(TempSortie,2))
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  Sortie = #Ro
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Romer,StrF(TempSortie,2))
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  Sortie = #N
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Newton,StrF(TempSortie,2))
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)  
EndProcedure ;Celsius

Procedure Fahrenheit()
  Entree = #F
  TempEntree = ValF(GetGadgetText(#Str_Fahrenheit))
  Sortie = #C
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Celsius,StrF(TempSortie,2))
  ;Sortie = #F
  ;TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  ;SetGadgetText(#Str_Fahrenheit,StrF(TempSortie,2))
  Sortie = #K
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Kelvin,StrF(TempSortie,2))
  Sortie = #Ra
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Rankine,StrF(TempSortie,2))
  Sortie = #Re
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Reaumur,StrF(TempSortie,2))
  Sortie = #De
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Delisle,StrF(TempSortie,2))
  Sortie = #Ro
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Romer,StrF(TempSortie,2))
  Sortie = #N
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Newton,StrF(TempSortie,2))
EndProcedure ;Fahrenheit

Procedure Kelvin()
  Entree = #K
  TempEntree = ValF(GetGadgetText(#Str_Kelvin))
  Sortie = #C
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Celsius,StrF(TempSortie,2))
  Sortie = #F
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Fahrenheit,StrF(TempSortie,2))
  ;Sortie = #K
  ;TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  ;SetGadgetText(#Str_Kelvin,StrF(TempSortie,2))
  Sortie = #Ra
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Rankine,StrF(TempSortie,2))
  Sortie = #Re
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Reaumur,StrF(TempSortie,2))
  Sortie = #De
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Delisle,StrF(TempSortie,2))
  Sortie = #Ro
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Romer,StrF(TempSortie,2))
  Sortie = #N
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Newton,StrF(TempSortie,2))
EndProcedure ;Kelvin

Procedure Rankine()
  Entree = #Ra
  TempEntree = ValF(GetGadgetText(#Str_Rankine))
  Sortie = #C
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Celsius,StrF(TempSortie,2))
  Sortie = #F
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Fahrenheit,StrF(TempSortie,2))
  Sortie = #K
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Kelvin,StrF(TempSortie,2))
  ;Sortie = #Ra
  ;TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  ;SetGadgetText(#Str_Rankine,StrF(TempSortie,2))
  Sortie = #Re
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Reaumur,StrF(TempSortie,2))
  Sortie = #De
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Delisle,StrF(TempSortie,2))
  Sortie = #Ro
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Romer,StrF(TempSortie,2))
  Sortie = #N
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Newton,StrF(TempSortie,2))
EndProcedure ;Rankine

Procedure Reaumur()
  Entree = #Re
  TempEntree = ValF(GetGadgetText(#Str_Reaumur))
  Sortie = #C
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Celsius,StrF(TempSortie,2))
  Sortie = #F
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Fahrenheit,StrF(TempSortie,2))
  Sortie = #K
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Kelvin,StrF(TempSortie,2))
  ;Sortie = #Ra
  ;TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  ;SetGadgetText(#Str_Rankine,StrF(TempSortie,2))
  Sortie = #Re
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Reaumur,StrF(TempSortie,2))
  Sortie = #De
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Delisle,StrF(TempSortie,2))
  Sortie = #Ro
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Romer,StrF(TempSortie,2))
  Sortie = #N
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Newton,StrF(TempSortie,2))
EndProcedure ;Reaumur

Procedure Delisle()
  Entree = #De
  TempEntree = ValF(GetGadgetText(#Str_Delisle))
  Sortie = #C
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Celsius,StrF(TempSortie,2))
  Sortie = #F
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Fahrenheit,StrF(TempSortie,2))
  Sortie = #K
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Kelvin,StrF(TempSortie,2))
  Sortie = #Ra
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Rankine,StrF(TempSortie,2))
  Sortie = #Re
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Reaumur,StrF(TempSortie,2))
  ;Sortie = #De
  ;TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  ;SetGadgetText(#Str_Delisle,StrF(TempSortie,2))
  Sortie = #Ro
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Romer,StrF(TempSortie,2))
  Sortie = #N
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Newton,StrF(TempSortie,2))
EndProcedure

Procedure Romer()
  Entree = #Ro
  TempEntree = ValF(GetGadgetText(#Str_Romer))
  Sortie = #C
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Celsius,StrF(TempSortie,2))
  Sortie = #F
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Fahrenheit,StrF(TempSortie,2))
  Sortie = #K
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Kelvin,StrF(TempSortie,2))
  Sortie = #Ra
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Rankine,StrF(TempSortie,2))
  Sortie = #Re
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Reaumur,StrF(TempSortie,2))
  Sortie = #De
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Delisle,StrF(TempSortie,2))
  ;Sortie = #Ro
  ;TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  ;SetGadgetText(#Str_Romer,StrF(TempSortie,2))
  Sortie = #N
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Newton,StrF(TempSortie,2))
EndProcedure

Procedure Newton()
  Entree = #N
  TempEntree = ValF(GetGadgetText(#Str_Newton))
  Sortie = #C
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Celsius,StrF(TempSortie,2))
  Sortie = #F
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Fahrenheit,StrF(TempSortie,2))
  Sortie = #K
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Kelvin,StrF(TempSortie,2))
  Sortie = #Ra
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Rankine,StrF(TempSortie,2))
  Sortie = #Re
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Reaumur,StrF(TempSortie,2))
  Sortie = #De
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Delisle,StrF(TempSortie,2))
  Sortie = #Ro
  TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  SetGadgetText(#Str_Romer,StrF(TempSortie,2))
  ;Sortie = #N
  ;TempSortie = Convertir_temperature(TempEntree,Entree,Sortie)
  ;SetGadgetText(#Str_Newton,StrF(TempSortie,2))
EndProcedure

Procedure Effacer_Donnees()
  SetGadgetText(#Str_Celsius, "")
  SetGadgetText(#Str_Fahrenheit, "")
  SetGadgetText(#Str_Kelvin, "")
  SetGadgetText(#Str_Rankine, "")
  SetGadgetText(#Str_Reaumur, "")
  SetGadgetText(#Str_Delisle, "")
  SetGadgetText(#Str_Romer, "")
  SetGadgetText(#Str_Newton, "")
EndProcedure ;Effacer_Donnees

; Fermeture de la fenêtre principale et fin du programme
Procedure Fermer_Fenetre_principale()
  CloseWindow(#Fenetre_principale)
  End
EndProcedure

; Création et ouverture de la fenêtre principale
Procedure Ouvrir_Fenetre_principale()
  ;Définir les drapeaux pardéfaut pour la fenêtre
  Protected Drapeaux = #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered
  ;Créer notre fenêtre
  If OpenWindow(#Fenetre_principale, 0, 0, 260, 240, "Micoute © 05/05/2016", Drapeaux)
    ;Affecter la police Arial 12 Gras comme police par défaut pour tous les gadgets
    If LoadFont(#Police_0,"Arial", 12, #PB_Font_Bold)
      SetGadgetFont(#PB_Default, FontID(#Police_0))
    EndIf
    ;Gadgets texte
    TextGadget(#Txt_Titre, 10, 5, 240, 20, "Convertisseur de températures", #PB_Text_Center)
    TextGadget(#Txt_Celsius, 160, 33, 90, 20, "Celsius")
    TextGadget(#Txt_Fahrenheit, 160, 58, 90, 20, "Fahrenheit")
    TextGadget(#Txt_Kelvin, 160, 83, 90, 20, "Kelvin")
    TextGadget(#Txt_Rankine, 160, 108, 90, 20, "Rankine")
    TextGadget(#Txt_Reaumur, 160, 133, 90, 20, "Réaumur")
    TextGadget(#Txt_Delisle, 160, 158, 90, 20, "Delisle")
    TextGadget(#Txt_Romer, 160, 183, 90, 20, "Romer")
    TextGadget(#Txt_Newton, 160, 208, 90, 20, "Newton")
    ;Gadgets chaine
    StringGadget(#Str_Celsius, 10, 30, 115, 20, "")
    StringGadget(#Str_Fahrenheit, 10, 55, 115, 20, "")
    StringGadget(#Str_Kelvin, 10, 80, 115, 20, "")
    StringGadget(#Str_Rankine, 10, 105, 115, 20, "")
    StringGadget(#Str_Reaumur, 10, 130, 115, 20, "")
    StringGadget(#Str_Delisle, 10, 155, 115, 20, "")
    StringGadget(#Str_Romer, 10,180, 115, 20, "")
    StringGadget(#Str_Newton, 10, 205, 115, 20, "")
    ;Boutons
    ButtonGadget(#Btn_Celsius, 125, 30, 20, 20, "X")
    ButtonGadget(#Btn_Fahrenheit, 125, 55, 20, 20, "X")
    ButtonGadget(#Btn_Kelvin, 125, 80, 20, 20, "X")
    ButtonGadget(#Btn_Rankine, 125, 105, 20, 20, "X")
    ButtonGadget(#Btn_Reaumur, 125, 130, 20, 20, "X")
    ButtonGadget(#Btn_Delisle, 125, 155, 20, 20, "X")
    ButtonGadget(#Btn_Romer, 125, 180, 20, 20, "X")
    ButtonGadget(#Btn_Newton, 125, 205, 20, 20, "X")
    ;Couleurs
    SetGadgetColor(#Txt_Titre, #PB_Gadget_BackColor, $FF0000)
    SetGadgetColor(#Txt_Titre, #PB_Gadget_FrontColor, $00FFFF) 
    
    ;Liste des événements de la fenêtre principale
    BindGadgetEvent(#Str_Celsius, @Celsius(), #PB_EventType_Change)
    BindGadgetEvent(#Str_Fahrenheit, @Fahrenheit(), #PB_EventType_Change)
    BindGadgetEvent(#Str_Kelvin, @Kelvin(), #PB_EventType_Change)
    BindGadgetEvent(#Str_Rankine, @Rankine(), #PB_EventType_Change)
    BindGadgetEvent(#Str_Reaumur, @Reaumur(), #PB_EventType_Change)
    BindGadgetEvent(#Str_Delisle, @Delisle(), #PB_EventType_Change)
    BindGadgetEvent(#Str_Romer, @Romer(), #PB_EventType_Change)
    BindGadgetEvent(#Str_Newton, @Newton(), #PB_EventType_Change)
    BindEvent(#PB_Event_CloseWindow, @Fermer_Fenetre_principale(), #Fenetre_principale)
  EndIf
EndProcedure ;Ouvrir_Fenetre_principale

; Conversion des entrées et des sorties
Procedure.f Convertir_temperature(TempEntree.f, TypeEntre, TypeSorti)
  Select TypeEntre
    Case #C ; Entrée Celsius
      Select TypeSorti
        Case #C ; Sortie Celsius
          TempSortie = TempEntree
        Case #F ; Sortie Fahrenheit
          TempSortie = (TempEntree * 1.8) + 32
        Case #K ; Sortie Kelvin
          TempSortie = TempEntree + 273.15
        Case #Ra ; Sortie Rankine
          TempSortie = (TempEntree * 1.8) + 32 + 459.67
        Case #Re ; Sortie Réaumur 
          TempSortie = TempEntree * 0.8
        Case #De
          TempSortie = (100 - TempEntree) * 3 / 2
        Case #Ro
          TempSortie = (TempEntree * 21 / 40) + 7.5
        Case #N
          TempSortie = TempEntree * 33 / 100
      EndSelect
      
    Case #F ; Entrée Fahrenheit
      Select TypeSorti
        Case #C ; Sortie Celsius
          TempSortie = (TempEntree - 32) / 1.8
        Case #F ; Sortie Fahrenheit
          TempSortie = TempEntree
        Case #K ; Sortie Kelvin
          TempSortie = ( TempEntree + 459.67) / 1.8
        Case #Ra ; Sortie Rankine
          TempSortie = TempEntree + 459.67
        Case #Re ; Sortie Réaumur
          TempSortie = (TempEntree - 32) / 2.25
        Case #De
          TempSortie = (212 - TempEntree) * 5 / 6
        Case #Ro
          TempSortie = (TempEntree - 32) * 7 / 24 + 7.5
        Case #N
          TempSortie = (TempEntree - 32) * 11 / 60
      EndSelect
      
    Case #K ; Entrée Kelvin
      Select TypeSorti
        Case #C ; Sortie Celsius
          TempSortie = TempEntree - 273.15
        Case #F ; Sortie Fahrenheit
          TempSortie = (TempEntree * 1.8) - 459.67
        Case #K ; Sortie Kelvin
          TempSortie = TempEntree
        Case #Ra ; Sortie Rankine
          TempSortie = TempEntree * 1.8
        Case #Re ; Sortie Réaumur
          TempSortie = (TempEntree - 273.15) * 0.8
        Case #De
          TempSortie = (373.15 - TempEntree) * 3 / 2
        Case #Ro
          TempSortie = (TempEntree - 273.15) * 21 / 40 + 7.5
        Case #N
          TempSortie = (TempEntree - 273.15) * 33 / 100
      EndSelect
      
    Case #Ra ; Entrée Rankine
      Select TypeSorti
        Case #C ; Sortie Celsius
          TempSortie = ((TempEntree - 32) - 459.67) / 1.8
        Case #F ; Sortie Fahrenheit
          TempSortie = TempEntree - 459.67
        Case #K ; Sortie Kelvin
          TempSortie = TempEntree / 1.8
        Case #Ra ; Sortie Rankine
          TempSortie = TempEntree
        Case #Re ; Sortie Réaumur  
          TempSortie = ((TempEntree - 32) - 459.67) / 2.25
        Case #De
          TempSortie = (671.67 - TempEntree) * 5 / 6
        Case #Ro
          TempSortie = (TempEntree - 491.67) * 7 / 24 + 7.5
        Case #N
          TempSortie = (TempEntree - 491.67) * 11 / 60
          
      EndSelect
      
    Case #Re ; Entrée Réaumur
      Select TypeSorti
        Case #C ; Sortie Celsius
          TempSortie = TempEntree * 1.25
        Case #F ; Sortie Fahrenheit
          TempSortie = (TempEntree * 2.25) + 32
        Case #K ; Sortie Kelvin
          TempSortie = (TempEntree * 1.25) + 273.15
        Case #Ra ; Sortie Rankine
          TempSortie = (TempEntree * 2.25) + 32 + 459.67
        Case #Re ; Sortie Réaumur 
          TempSortie = TempEntree
        Case #De
          TempSortie = (80 - TempEntree) * 15 / 8
        Case #Ro
          TempSortie = TempEntree * 21 / 32 + 7.5
        Case #N
          TempSortie = TempEntree * 33 / 80
      EndSelect
      
    Case #De ; Entrée Delisle
      Select TypeSorti
        Case #C ; Sortie Celsius
          TempSortie = 100 - TempEntree * 2 / 3
        Case #F
          TempSortie = 212 - TempEntree * 6 / 5
        Case #K
          TempSortie = 373.15 - TempEntree * 2 / 3
        Case #Ra
          TempSortie = 671.67 - TempEntree * 6 / 5
        Case #Re
          TempSortie = 80 - TempEntree * 8 / 15
        Case #De
          TempSortie = TempEntree
        Case #Ro
          TempSortie = 60 - TempEntree * 7 / 20
        Case #N
          TempSortie = 33 - TempEntree * 11 / 50
      EndSelect
      
    Case #Ro ; Entrée Romer
      Select TypeSorti
        Case #C ; Sortie Celsius
          TempSortie = (TempEntree - 7.5) * 40 /21
        Case #F ; Sortie Fahrenheit
          TempSortie = (TempEntree - 75) * 24 / 7 + 32
        Case #K ; Sortie Kelvin
          TempSortie = (TempEntree - 7.5) * 40 / 21 + 273.15
        Case #Ra ; Sortie Rankine
          TempSortie = (TempEntree - 7.5) * 24 / 7 + 491.67
        Case #Re ; Sortie Réaumur
          TempSortie = (TempEntree - 7.5) * 32 / 21
        Case #De ; Sortie Delisle
          TempSortie = (60 - TempEntree) * 20 / 7
        Case #Ro ; Sortie Romer
          TempSortie = TempEntree
        Case #N ; Sortie Newton
          TempSortie = (TempEntree - 7.5) * 22 / 35
      EndSelect
      
    Case #N ; Entrée Newton
      Select TypeSorti
        Case #C ; Sortie Celsius
          TempSortie = TempEntree * 100 / 33
        Case #F ; Sortie Fahrenheit
          TempSortie = TempEntree * 60 / 11 + 32
        Case #K ; Sortie Kelvin
          TempSortie = TempEntree * 100 / 33 + 273.15
        Case #Ra ; Sortie Rankine
          TempSortie = TempEntree * 60 /11 + 491.67
        Case #Re ; Sortie Réaumur
          TempSortie = TempEntree * 80 / 33
        Case #De ; Sortie Delisle
          TempSortie = (33 - TempEntree) * 50 / 11
        Case #Ro ; Sortie Romer
          TempSortie = TempEntree * 35 / 22 + 7.5
        Case #N ; Sortie Newton
          TempSortie = TempEntree
      EndSelect          
      
  EndSelect
  
  ProcedureReturn TempSortie
EndProcedure ;Convertir_temperature

Ouvrir_Fenetre_principale()

;{- Boucle événementielle
Repeat
  Event = WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Btn_Celsius
          Effacer_Donnees()
          SetActiveGadget(#Str_Celsius)
        Case #Btn_Fahrenheit
          Effacer_Donnees()
          SetActiveGadget(#Str_Fahrenheit)
        Case #Btn_Kelvin
          Effacer_Donnees()
          SetActiveGadget(#Str_Kelvin)
        Case #Btn_Rankine
          Effacer_Donnees()
          SetActiveGadget(#Str_Rankine)
        Case #Btn_Reaumur
          Effacer_Donnees()
          SetActiveGadget(#Str_Reaumur)
        Case #Btn_Delisle
          Effacer_Donnees()
          SetActiveGadget(#Str_Delisle)
        Case #Btn_Romer
          Effacer_Donnees()
          SetActiveGadget(#Str_Romer)
        Case #Btn_Newton
          Effacer_Donnees()
          SetActiveGadget(#Str_Newton)
      EndSelect ;EventGadget      
  EndSelect     ;Event
ForEver
;}
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Convertisseur de températures automatique

Message par Kwai chang caine »

Merci pour le partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre