Public Class frmAdjuvant
    Private Sub ChkbPlastifiant_CheckedChanged(sender As Object, e As EventArgs) Handles ChkbPlastifiant.CheckedChanged
        If ChkbPlastifiant.Checked = True Then
            LblPlastifiantMinorationEau.Visible = True : LblPlastifiantPourcent.Visible = True : TxtPlastifiantMinorEau.Visible = True : BtnHlpPlastifiantMinorationEau.Visible = True
            LblPlastifiantDosage.Visible = True : LblPlastifiantdosagePourcent.Visible = True : TxtPlastifiantDosage.Visible = True
            LblPlastifiantExtraitSec.Visible = True : LblPlastifiantExtraitSecPourcent.Visible = True : TxtPlastifiantExtraitSec.Visible = True
            LblPlastifiantDensite.Visible = True : LblPlastifiantDensiteKgL.Visible = True : TxtPlastifiantDensite.Visible = True
            ChkbMajFines.Visible = True : BtnHlpMajFines.Visible = True
            If Beton.PlastifiantMajFines = True Then
                RbtnPlastifiant.Visible = True : RbtnSuperplastifiant.Visible = True
            End If
            TxtPlastifiantMinorEau.Focus()
        Else
            Call Effacement_Total_Affichage()
        End If
    End Sub

    ''' <summary>Effacement complet de l'affichage
    ''' </summary>
    Private Sub Effacement_Total_Affichage()
        LblPlastifiantMinorationEau.Visible = False : LblPlastifiantPourcent.Visible = False : TxtPlastifiantMinorEau.Visible = False : BtnHlpPlastifiantMinorationEau.Visible = False
        LblPlastifiantDosage.Visible = False : LblPlastifiantDosagePourcent.Visible = False : TxtPlastifiantDosage.Visible = False
        LblPlastifiantExtraitSec.Visible = False : LblPlastifiantExtraitSecPourcent.Visible = False : TxtPlastifiantExtraitSec.Visible = False
        LblPlastifiantDensite.Visible = False : LblPlastifiantDensiteKgL.Visible = False : TxtPlastifiantDensite.Visible = False
        ChkbMajFines.Visible = False : BtnHlpMajFines.Visible = False : RbtnPlastifiant.Visible = False : RbtnSuperplastifiant.Visible = False
    End Sub

    Private Sub ChkbMajFines_CheckedChanged(sender As Object, e As EventArgs) Handles ChkbMajFines.CheckedChanged
        If ChkbMajFines.Checked = True Then
            Beton.PlastifiantMajFines = True
            RbtnPlastifiant.Visible = True : RbtnSuperplastifiant.Visible = True
            Select Case Beton.PlastifiantAdjType
                Case 1
                    RbtnPlastifiant.Checked = True
                Case 2
                    RbtnSuperplastifiant.Checked = True
            End Select
        Else
            Beton.PlastifiantMajFines = False
            RbtnPlastifiant.Visible = False : RbtnSuperplastifiant.Visible = False
            RbtnPlastifiant.Checked = False : RbtnSuperplastifiant.Checked = False
        End If
    End Sub
    Private Sub frmAdjuvant_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Call Affichage()
    End Sub

    Private Sub BtnOK_Click(sender As Object, e As EventArgs) Handles BtnOK.Click
        Dim verif As Boolean
        verif = True
        Call Lecture(verif)
        If verif = False Then Exit Sub
        Call Verification(verif)
        If verif = False Then Exit Sub
        Me.Dispose()
        Me.Finalize()
    End Sub

    Private Sub BtnAnnuler_Click(sender As Object, e As EventArgs) Handles BtnAnnuler.Click
        Me.Dispose()
        Me.Finalize()
    End Sub

    ''' <summary>Lecture des données figurant sur le formulaire</summary>
    ''' <param name="Verif">renvoie FALSE si erreur dans la lecture des données</param>
    Private Sub Lecture(ByRef Verif As Boolean)
        With Beton
            If ChkbPlastifiant.Checked = True Then
                .Plastifiant = True
                'Taux de minoration pour l'eau
                Dim Toto As Double
                If gestionderreur(TxtPlastifiantMinorEau, EP1) = True Then Toto = CDbl(TxtPlastifiantMinorEau.Text) / 100 Else Verif = False
                If Toto <= 0 Then
                    MessageBox.Show("La valeur du taux de minoration d'eau est inférieure à 0%." & Environment.NewLine & "Le taux doit être supérieur à 0%. Modifier cette valeur.",
                                         "Module Lecture des données", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
                    Verif = False
                ElseIf Toto > 0.3 Then
                    MessageBox.Show("La valeur du taux de minoration d'eau est supérieure à 30%." & Environment.NewLine & "Le taux doit être inférieur à 30%. Modifier cette valeur.",
                                         "Module Lecture des données", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
                    Verif = False
                Else
                    .PlastifiantReduc = Toto
                End If
                'Dosage
                If gestionderreur(TxtPlastifiantDosage, EP1) = True Then Toto = CDbl(TxtPlastifiantDosage.Text) / 100 Else Verif = False
                If Toto <= 0 Then
                    MessageBox.Show("La valeur du dosage est inférieure à 0%." & Environment.NewLine & "La valeur doit être supérieure à 0%. Modifier cette valeur.",
                                         "Module Lecture des données", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
                    Verif = False
                ElseIf Toto > 0.02 Then
                    MessageBox.Show("La valeur du taux de dosage est supérieur à 2%." & Environment.NewLine & "Le taux doit être inférieur à 2%. Modifier cette valeur.",
                                         "Module Lecture des données", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
                    Verif = False
                Else
                    .PlastifiantDosage = Toto
                End If
                'Extrait sec
                If gestionderreur(TxtPlastifiantExtraitSec, EP1) = True Then Toto = CDbl(TxtPlastifiantExtraitSec.Text) / 100 Else Verif = False
                If Toto <= 0 Then
                    MessageBox.Show("La valeur du taux d'extrait sec est inférieure à 0%." & Environment.NewLine & "Le taux doit être supérieur à 0%. Modifier cette valeur.",
                                         "Module Lecture des données", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
                    Verif = False
                ElseIf Toto > 0.5 Then
                    MessageBox.Show("La valeur du taux d'extrait sec est supérieure à 50%." & Environment.NewLine & "Le taux doit être inférieur à 50%. Modifier cette valeur.",
                                         "Module Lecture des données", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
                    Verif = False
                Else
                    .PlastifiantExtraitSec = Toto
                End If
                'Densité
                If gestionderreur(TxtPlastifiantDensite, EP1) = True Then Toto = CDbl(TxtPlastifiantDensite.Text) Else Verif = False
                If Toto < 0.5 Then
                    MessageBox.Show("La valeur de la densité est inférieure à 0,50." & Environment.NewLine & "La valeur de la densité doit être supérieur à 0,50. Modifier cette valeur.",
                                         "Module Lecture des données", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
                    Verif = False
                ElseIf Toto > 3 Then
                    MessageBox.Show("La valeur de la densité est supérieure à 3." & Environment.NewLine & "La valeur de la densité doit être inférieur à 3. Modifier cette valeur.",
                                         "Module Lecture des données", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
                    Verif = False
                Else
                    .PlastifiantDensite = Toto
                End If
                'Majoration teneur en fines
                If ChkbMajFines.Checked = True Then
                    .PlastifiantMajFines = True
                    If RbtnPlastifiant.Checked = True Then
                        .PlastifiantAdjType = 1
                    ElseIf RbtnSuperplastifiant.Checked = True Then
                        .PlastifiantAdjType = 2
                    Else
                        .PlastifiantAdjType = 3
                        MessageBox.Show("Vous avez activé l'option de majoration des fines mais vous n'avez pas précisé le type d'adjuvant: Plastifiant ou superplastifiant." & Environment.NewLine & "Merci de bien vouloir préciser cette valeur.",
                                         "Module Lecture des données", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
                        Verif = False
                    End If
                Else
                    .PlastifiantMajFines = False : .PlastifiantAdjType = 3
                End If
            Else
                .Plastifiant = False : .PlastifiantMajFines = False
            End If
        End With
    End Sub

    ''' <summary>Module de vérification des données renseignées dans le formulaire</summary>
    ''' <param name="Verif">renvoie FALSE si erreur dans les données</param>
    Private Sub Verification(ByRef Verif As Boolean)
        Dim msg As String = String.Empty
        With Beton
            If .Plastifiant = True Then
                If .PlastifiantReduc <= 0.05 Then

                    Select Case .Formulation
                        Case 1 'Dreux 

                        Case 2 'Baron-Ollivier
                            If .Slump < 4 Then
                                Dim result As Integer
                                result = MessageBox.Show("La valeur du taux de minoration d'eau (= " & (.PlastifiantReduc * 100).ToString("#0.00") & " %) est inférieure à 5% (." & Environment.NewLine & "Souhaitez-vous continuer avec cette valeur ?",
                                                         "Module de vérification de cohérence des données", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
                                If result = DialogResult.Yes Then 'Yes a été cliqué, le calcul continue
                                    msg = "Plastifiant - La valeur du taux de minoration d'eau est égale à 0."
                                    Aff.msg_Avertiss.Add(msg)
                                Else
                                    Verif = False
                                End If
                            End If
                    End Select
                End If
            End If
        End With
    End Sub

    ''' <summary>Affichage des données sur le formulaire</summary>
    ''' <param name="Verif">renvoie FALSE si erreur dans la lecture des données</param>
    Private Sub Affichage()
        With Beton
            If .Plastifiant = True Then
                ChkbPlastifiant.Checked = True
                TxtPlastifiantMinorEau.Text = (.PlastifiantReduc * 100).ToString("#0.0")
                TxtPlastifiantDosage.Text = (.PlastifiantDosage * 100).ToString("#0.00")
                TxtPlastifiantExtraitSec.Text = (.PlastifiantExtraitSec * 100).ToString("#0.0")
                TxtPlastifiantDensite.Text = .PlastifiantDensite.ToString("#0.000")
                If .PlastifiantMajFines = True Then
                    ChkbMajFines.Checked = True
                    RbtnPlastifiant.Visible = True : RbtnSuperplastifiant.Visible = True
                    Select Case .PlastifiantAdjType
                        Case 1
                            RbtnPlastifiant.Checked = True
                        Case 2
                            RbtnSuperplastifiant.Checked = True
                    End Select
                Else
                    RbtnPlastifiant.Visible = False : RbtnSuperplastifiant.Visible = False
                End If
            Else
                ChkbPlastifiant.Checked = False
                Call Effacement_Total_Affichage()
            End If
        End With
    End Sub

#Region "Gestion des Textbox"
    Private Sub TxtPlastifiantMinorEau_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtPlastifiantMinorEau.Enter
        TxtPlastifiantMinorEau.SelectionStart = 0
        TxtPlastifiantMinorEau.SelectionLength = TxtPlastifiantMinorEau.Text.Length
    End Sub

    Private Sub TxtPlastifiantMinorEau_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPlastifiantMinorEau.KeyPress
        Call Gestion_Keypress(e, TxtPlastifiantMinorEau, True, True)
    End Sub
    Private Sub TxtPlastifiantDosage_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtPlastifiantDosage.Enter
        TxtPlastifiantDosage.SelectionStart = 0
        TxtPlastifiantDosage.SelectionLength = TxtPlastifiantDosage.Text.Length
    End Sub

    Private Sub TxtPlastifiantDosage_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPlastifiantDosage.KeyPress
        Call Gestion_Keypress(e, TxtPlastifiantDosage, True, False)
    End Sub
    Private Sub TxtPlastifiantExtraitSec_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtPlastifiantExtraitSec.Enter
        TxtPlastifiantExtraitSec.SelectionStart = 0
        TxtPlastifiantExtraitSec.SelectionLength = TxtPlastifiantExtraitSec.Text.Length
    End Sub

    Private Sub TxtPlastifiantExtraitSec_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPlastifiantExtraitSec.KeyPress
        Call Gestion_Keypress(e, TxtPlastifiantExtraitSec, True, False)
    End Sub
    Private Sub TxtPlastifiantDensite_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtPlastifiantDensite.Enter
        TxtPlastifiantDensite.SelectionStart = 0
        TxtPlastifiantDensite.SelectionLength = TxtPlastifiantDensite.Text.Length
    End Sub

    Private Sub TxtPlastifiantDensite_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPlastifiantDensite.KeyPress
        Call Gestion_Keypress(e, TxtPlastifiantDensite, True, False)
    End Sub
#End Region

#Region "Gestion des boutons d'aide"
    Private Sub BtnHlpPlastifiantMinorationEau_Click(sender As Object, e As EventArgs) Handles BtnHlpPlastifiantMinorationEau.Click
        Dim frm1 As frmAide
        frm1 = New frmAide
        Aff.FichierAide = 28
        frm1.Show()
    End Sub

    Private Sub BtnHlpPlastifiantDosage_Click(sender As Object, e As EventArgs) Handles BtnHlpPlastifiantDosage.Click
        Dim frm1 As frmAide
        frm1 = New frmAide
        Aff.FichierAide = 29
        frm1.Show()
    End Sub

    Private Sub BtnHlpMajFines_Click(sender As Object, e As EventArgs) Handles BtnHlpMajFines.Click
        Dim frm1 As frmAide
        frm1 = New frmAide
        Aff.FichierAide = 34
        frm1.Show()
    End Sub


#End Region

End Class