/// <summary>
 /// Constructor que llama al base, y agrega las dos nuevas variables de helicóptero.
 /// </summary>
 /// <param name="marca"></param>
 /// <param name="modelo"></param>
 /// <param name="velocidadMaxima"></param>
 /// <param name="alturaMaxima"></param>
 /// <param name="peso"></param>
 /// <param name="largo"></param>
 /// <param name="ancho"></param>
 /// <param name="anio"></param>
 /// <param name="rotores"></param>
 /// <param name="tipo"></param>
 public Helicoptero(string marca, string modelo, int velocidadMaxima, int alturaMaxima,
                    float peso, float largo, float ancho, int anio, int rotores, EHelicoptero tipo) :
     base(marca, modelo, velocidadMaxima, alturaMaxima, peso, largo, ancho, anio)
 {
     this.rotores = rotores;
     this.tipo    = tipo;
 }
        /// <summary>
        /// El botón guardar intenta validar que las variables de texto no estén vacías, e intenta pasar la variable anio a
        /// int también. Una vez que está todo correctamente verificado, las variables declaradas al comienzo del FormAgregarModificar
        /// que corresponden a las de todas las aeronaves, son igualadas a las que el usuario escribió. Luego se verifican las variables
        /// de texto particulares de cada aeronave (por ejemplo, los rotores de un helicóptero), y una vez que está todo verificado,
        /// se crea una nueva aeronave del tipo indicado, y la variable BSave a true, para luego poder informar al usuario que están
        /// los nuevos datos sin guardar. También agrega o modifica a SQL.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                anio = Convert.ToInt32(txtAnio.Text);
            }
            catch (Exception)
            {
                MessageBox.Show("Escriba un numero en año.", "Error",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (txtAnio.Text == "" || TXTMarca.Text == "" || TXTModelo.Text == "")
            {
                MessageBox.Show("Una o más opciones están vacías.", "Error",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                marca           = TXTMarca.Text;
                modelo          = TXTModelo.Text;
                velocidadMaxima = trackVelocidad.Value;
                alturaMaxima    = trackAltura.Value;
                peso            = trackPeso.Value;
                largo           = (float)trackLargo.Value / 100;
                ancho           = (float)trackAncho.Value / 100;
            }

            if (CMBAeronave.SelectedIndex == 0)
            {
                if (txtRotores.Text == "")
                {
                    MessageBox.Show("Una o más opciones están vacías.", "Error",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                try
                {
                    rotores = Convert.ToInt32(txtRotores.Text);
                }
                catch (Exception)
                {
                    MessageBox.Show("Escriba un numero en rotores.", "Error",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                tipoHelicoptero = (EHelicoptero)cmbTipo.SelectedIndex;

                aeronave = new Helicoptero(marca, modelo, velocidadMaxima, alturaMaxima, peso, largo,
                                           ancho, anio, rotores, tipoHelicoptero);
                BSave = true;

                AccesoDatos accesoDatos = new AccesoDatos();
                if (modo2 == EModo.Agregar)
                {
                    accesoDatos.AgregarHelicoptero((Helicoptero)aeronave);
                }
                else
                {
                    accesoDatos.ModificarHelicoptero((Helicoptero)aeronave);
                }
            }

            else if (CMBAeronave.SelectedIndex == 1)
            {
                motores = (EMotores)cmbMotor.SelectedIndex;

                aeronave = new Avion(marca, modelo, velocidadMaxima, alturaMaxima, peso, largo, ancho,
                                     anio, tipo, motores);
                BSave = true;

                AccesoDatos accesoDatos = new AccesoDatos();
                if (modo2 == EModo.Agregar)
                {
                    accesoDatos.AgregarAvion((Avion)aeronave);
                }
                else
                {
                    accesoDatos.ModificarAvion((Avion)aeronave);
                }
            }

            else if (CMBAeronave.SelectedIndex == 2)
            {
                if (txtPasajeros.Text == "")
                {
                    MessageBox.Show("Una o más opciones están vacías.", "Error",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                try
                {
                    pasajeros = Convert.ToInt32(txtPasajeros.Text);
                }
                catch (Exception)
                {
                    MessageBox.Show("Escriba un numero en pasajeros.", "Error",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                capacidadAire = trackCapacidadAire.Value;

                aeronave = new Globo(marca, modelo, velocidadMaxima, alturaMaxima, peso, largo, ancho,
                                     anio, capacidadAire, pasajeros);
                AccesoDatos accesoDatos = new AccesoDatos();
                if (modo2 == EModo.Agregar)
                {
                    accesoDatos.AgregarGlobo((Globo)aeronave);
                }
                else
                {
                    accesoDatos.ModificarGlobo((Globo)aeronave);
                }

                BSave = true;
            }
            this.Close();
        }