using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using fbblControlli;
using fbblGeometriaPiana;
using fbblMessaggi;
using fbblCostanti;

namespace fdprPerimetroRettangolo
{
    public partial class frmPerimetroRettangolo : Form
    {
      
        public frmPerimetroRettangolo()
        {
            InitializeComponent();
        }

//************ PROCEDURE LOCALI DI PROGETTO ******************

        private void frmPerimetroRettangolo_Esci()
        {
            Application.Exit();
        }

        private void frmPerimetroRettangolo_Nuovo()
        {
            edtBase.Clear();
            edtAltezza.Clear();
            edtPerimetro.Clear();

            edtBase.Focus();
        }

        private void frmPerimetroRettangolo_Esegui()
        {
            
            double Base;
            double Altezza;
            double Perimetro;
            bool ControlloOK;

            ControlloDati(out ControlloOK,out Base,out Altezza);

            if (ControlloOK==true)
            {
                Perimetro = StrumentiGeometriaPiana.PerimetroRettangolo(Base,Altezza);
                edtPerimetro.Text = Perimetro.ToString();
            }
        }

        private void ControlloDati(out bool ControlloOK,out double Base,out double Altezza)
        {
            Altezza = 0;

            StrumentiControlli.ControlloNumeroRealePositivo(edtBase.Text,out ControlloOK,out Base);

            if (ControlloOK==false)
            {
                StrumentiMessaggi.MessaggioNumeroRealePositivo("Base");
                edtBase.Focus();

                return;
            }

            StrumentiControlli.ControlloNumeroRealePositivo(edtAltezza.Text, out ControlloOK, out Altezza);

            if (ControlloOK == false)
            {
                StrumentiMessaggi.MessaggioNumeroRealePositivo("Altezza");
                edtAltezza.Focus();

            }

        }

        private void frmPerimetroRettangolo_TastoPremuto(ref KeyPressEventArgs TastoPremuto)
        {
            if (TastoPremuto.KeyChar==StrumentiCostanti.Punto)
            {
                TastoPremuto.KeyChar = StrumentiCostanti.Virgola;
            }
        }

//************ PROCEDURA DI RISPOSTA AGLI EVENTI ******************

        private void btnEsegui_Click(object sender, EventArgs e)
        {
            frmPerimetroRettangolo_Esegui();
        }

        private void btnNuovo_Click(object sender, EventArgs e)
        {
            frmPerimetroRettangolo_Nuovo();
        }

        private void btnEsci_Click(object sender, EventArgs e)
        {
            frmPerimetroRettangolo_Esci();
        }

        private void edtBase_KeyPress(object sender, KeyPressEventArgs TastoPremuto)
        {
            frmPerimetroRettangolo_TastoPremuto(ref TastoPremuto);
        }

        private void edtAltezza_KeyPress(object sender, KeyPressEventArgs TastoPremuto)
        {
            frmPerimetroRettangolo_TastoPremuto(ref TastoPremuto);
        }



    }
}
