コード例 #1
0
        private void toolStripButtonDeshacer_Click(object sender, EventArgs e) //botón deshacer
        {
            //Le asignamos a la lista el último valor guardado en la pila
            listFP = pilaFP.Pop();

            //Para dibujar
            DibujarFP(listFP);
        }
コード例 #2
0
        public void DibujarNuevoFP(ListFlightPlan listfp) //cuando añades algun FP a la lista cal incluir su dibujo en el panel
        {
            int i = 0;

            while (i < listfp.getcount())
            {
                FlightPlan FP = listfp.getposicion(i);

                //Configuramos los parámetros de la picturebox
                PictureBox pp = new PictureBox();
                pp.Width      = 20;
                pp.Height     = 20;
                pp.ClientSize = new Size(20, 20);

                //Configuramos los parámetros de la leyenda
                Label leyenda = new Label();
                leyenda.Text = FP.GetID();

                // Obtenemos los puntos correspondientes en el panel
                //Para picturebox
                int   xif   = Convert.ToInt32(FP.GetAX()) - 10;
                int   yif   = Convert.ToInt32(FP.GetAY()) - 10;
                Point pDraw = new Point(xif, yif);
                //Para leyenda
                int   xil    = Convert.ToInt32(FP.GetAX()) + 15;
                int   yil    = Convert.ToInt32(FP.GetAY()) - 15;
                Point pLabel = new Point(xil, yil);

                //Colocamos cada cosa en su punto
                pp.Location      = pDraw;
                leyenda.Location = pLabel;

                //Ajustamos y mostramos
                pp.SizeMode = PictureBoxSizeMode.StretchImage;
                Bitmap image = new Bitmap("avion.jpg");
                pp.Image = (System.Drawing.Image)image;
                panel1.Controls.Add(pp);
                imagenes.Add(pp);
                pp.Click += new System.EventHandler(this.showinfo);
                pp.Tag    = num;
                num       = num + 1;
                panel1.Invalidate();

                leyendas.Add(leyenda);
                panel1.Controls.Add(leyenda);
                leyenda.BackColor = Color.Transparent;

                i++;
            }
        }
コード例 #3
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            //Copiamos la lista para guardarla en la pila
            ListFlightPlan listacopia = new ListFlightPlan(listFP);

            pilaFP.Push(listacopia);

            //Movemos todos los vuelos hasta que hayan llegado todos a su destino
            listFP.MoverTodos(interval);
            if (listFP.Hanllegadotodos() == true)
            {
                timer1.Stop();
            }

            //Para dibujar el avión
            DibujarFP(listFP);
        }
コード例 #4
0
        private void toolStripButtoninformacion_Click(object sender, EventArgs e) //botón información vuelos
        {
            try
            {
                //Abrimos el form, paramos la simulación y le damos (al form) la lista para que pueda coger los datos
                InformacionVuelosDatagridview f5 = new InformacionVuelosDatagridview();
                timer1.Stop();
                f5.setlist(listFP);
                f5.cambiarfondo(fondo);
                f5.Show();

                //Cogemos la lista que nos devuelve el form ya que el usuario puede cambiar la velocidad desde ahí
                listFP = f5.getlist();

                //Dibujar el avión
                DibujarFP(listFP);
            }
            catch (Exception exc)
            {
                MessageBox.Show("Error: " + exc.Message);
            }
        }
コード例 #5
0
        public void DibujarFP(ListFlightPlan listFP) //cuando mueves los FP cal actualizar su posicion en el panel
        {
            int i = 0;

            while (i < listFP.getcount())
            {
                FlightPlan p = listFP.getposicion(i);

                // Obtenemos los puntos correspondientes en el panel
                int   newxf  = Convert.ToInt32(p.GetAX()) - 10;
                int   newyf  = Convert.ToInt32(p.GetAY()) - 10;
                int   newxl  = Convert.ToInt32(p.GetAX()) + 15;
                int   newyl  = Convert.ToInt32(p.GetAY()) - 15;
                Point pDraw  = new Point(newxf, newyf);
                Point pLabel = new Point(newxl, newyl);

                //Actualizamos
                imagenes[i].Location = pDraw;
                leyendas[i].Location = pLabel;
                panel1.Refresh();

                i = i + 1;
            }
        }
コード例 #6
0
 public void setlist(ListFlightPlan listfp) //asignamos una lista
 {
     this.mylist = listfp;
 }