jueves, 21 de noviembre de 2013

SOLUCIÓN: PARA EL BOTÓN ABRIR


  • Programación para el botón abrir lienzo
Este código es para abrir un Lienzo, recuperando cada figura que se ha dibujado anteriormente guardada.

Esta es una solución que hicimos para poder abrir un lienzo, después de hacerle distribuido solo que aparece un cuadro de dialogo que permite que el Usuario busque en cualquier parte para abrir un lienzo.



MÉTODO PARA GUARDAR EN LA BASE DE DATOS


  • Método para poder guardar un lienzo en la Base de Datos:
Este método es para guardar un lienzo que contiene varias figuras con diversos colores y tamaños y tipos en la Base de Datos.
En un principio esta era la idea de poder guardar un lienzo, pero al momento de querer hacer distribuido el Paint, este método solo nos guardaba localmente  y además que con el Save File Dialog permitía que un Usuario elija donde quiere guardar su lienzo y eso es incorrecto, por lo tanto decidimos que para guardar una figura enviaríamos a la base cada atributo de la misma.

PROGRAMACIÓN EN EL BOTÓN ABRIR LIENZO



  • BOTÓN PARA ABRIR UN LIENZO                                                                                       

Este código es para abrir un Lienzo, recuperando cada figura que se ha dibujado anteriormente guardada.



















En un principio esta era la idea de poder abrir un lienzo, pero al momento de querer hacer distribuido el Paint con este método nos daba un error en el transcurso de la programación, por lo tanto decidimos que para guardar una figura enviaríamos a la base cada atributo de la misma  y  este código era obsoleto porque necesitábamos un método que recupere cada valor de la figura.

domingo, 20 de octubre de 2013

INCONVENIENTES

  • "CONTROL MINIMIZAR", al seleccionarlo y volver a darle click en el mismo se nos borran las figuras dibujadas.

  • "CONTROL CERRAR", no podemos asignarle que nos permita elegir si se desea guardar el Lienzo modificado o no.

  • "BOTÓN GUARDAR", podemos guardar con diferentes extensiones como: .png, .bmp, .jpeg, .gif, etc; pero no podemos abrir con un visor de imágenes.

  • "RELLENO", el pintar con un relleno las figuras y que su contorno sea de otro color.  











miércoles, 16 de octubre de 2013

DIAGRAMA ACCESO (Lluvia de Ideas)


Este es otro prototipo de la forma que estará estructurado nuestro Paint, en este se muestra varias cosas como: Las clases que se encuentran en el PAINT, el formulario de Autenticación para el Cliente y el de su Registro si es que no se ha registrado aún.

Hemos pensado que para guardar los lienzos de cada usuario vamos a usar una Base de Datos que se llama "Lienzos" y cada usuario tendrá un Álbum de Lienzos donde podrá encontrar todos los Paint que el ha creado.

La entrada anterior y esta son tentativas ya que en el transcurso de la creación de nuestra aplicación vamos realizando los diferentes cambios que se necesita para el desarrollo de nuestro Paint.

domingo, 13 de octubre de 2013

Diagramas (Lluvia de ideas)

Aquí presentamos la lluvia de ideas del acceso de usuarios en diagramas, los cuales nos permitirán almacenar en la base de datos a los usuarios y autenticar los como a su vez  almacenar los lienzos de cada usuario en álbumes únicos de cada usuario.


También tuvimos inconvenientes ya que la investigar por la red el código para dibujar cuadrados y círculos no nos posibilita primero al hacer click se dibuje un cuadrado o un circulo, dibuja figuras infinitas, eso lo solucionamos de la siguiente manera, ya que controlamos con el MouseMov, declaramos una variable booleana pulsar y utilizamos los eventos MouseUP y Mouse Down que la variable PULSAR sera true al estar presionada es decir en el evento MouseDown y false en el evento MouseUP.
CODIGO:
     
        //Variable que permite manipular el dibujar los cuadrados o círculos al dar click y que no dibuje varias           figuras(cuadrados, círculos) solamente al mover el mouse.
        public bool pulsar;
        //Evento que muestra que el mouse esta presionado.
        private void picMostrarLienzo_MouseDown(object sender, MouseEventArgs e)
        {
            pulsar = true;
        }
        //Evento que muestra que el mouse esta alzado.
        private void picMostrarLienzo_MouseUp(object sender, MouseEventArgs e)
        {
            pulsar = false;
        }
        private void picMostrarLienzo_MouseMove(object sender, MouseEventArgs e)
        {
            Graphics objGrafico = picMostrarLienzo.CreateGraphics();

            if (pulsar)
            {

                if (forma == "cuadrado")
                {
                    Pen objLapiz = new Pen(colorDialog1.Color,grosor);
                    objGrafico.DrawRectangle(objLapiz, new Rectangle(e.X, e.Y, diametro, diametro));
                    objLapiz.Dispose();
                    objGrafico.Dispose();

                }

                else
                {

                    Pen objLapiz = new Pen(colorDialog1.Color, grosor);
                     objGrafico.FillEllipse(brocha, new Rectangle(e.X, e.Y, diametro, diametro));
               
                }
            }

        }

Otra dificultad que encontramos fue rellenar un circulo o cuadrado ya dibujado y también al minimizar nuestra aplicación se borra lo dibujado, esto estamos aun investigando en la siguiente entrada lo solucionaremos.

jueves, 10 de octubre de 2013

Programando Paint 1

Empezamos nuestra aplicación por el interfaz gráfico, nuestro lienzo va a ser un picturebox, el cual se lo podrá almacenar según el usuario autenticado, tendremos un menú que permite elegir el COLOR del lienzo y el color de la figura mediante el control ColorDialog, y a igual manera un menú permitirá escoger el TAMAÑO de las figuras (tres alternativas grande, mediano y pequeño)  y del lienzo.





Parte de la programación para elegir los colores  de los lienzos y de la figuras:

        //Este evento permite cambiar el color del lienzo
        //mediante un control ColorDialog
        //el cual muestra una paleta de colores predeterminados o para 
        //escoger alguno nuevo
        private void menuColorLienzo_Click(object sender, EventArgs e)
        {
            if (colorDialog2.ShowDialog() == DialogResult.OK)
            {
                picMostrarLienzo.BackColor = colorDialog2.Color;
            }
        }
        //Este evento permite cambiar el color de la figura
        //mediante un control ColorDialog
        //el cual muestra una paleta de colores predeterminados o para 
        //escoger alguno nuevo
        private void menuColorLapiz_Click(object sender, EventArgs e)
        {

            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
                menuColorLapiz.BackColor = colorDialog1.Color;
            }
        }
        string forma="";
        //Permite escoger la figura cuadrado
        private void menuFigurasCuadrados_Click(object sender, EventArgs e)
        {
            forma = "cuadrado";
        }
        //Permite escoger la figura círculo
        private void menuFigurasCirculos_Click(object sender, EventArgs e)
        {
            forma = "circulo";
        }
        //Este evento permitirá dibujar los cuadrados o los círculos mediante el mouseMove las figuras se                 dibujarán siguiendo el movimiento del mouse
        private void picMostrarLienzo_MouseMove(object sender, MouseEventArgs e)
        {
        Graphics objGrafico = picMostrarLienzo.CreateGraphics();
                 if ( forma == "cuadrado")
                {
                    Pen objLapiz = new Pen(colorDialog1.Color, 1);
                    objGrafico.DrawRectangle(objLapiz, new Rectangle(e.X, e.Y, 30, 30));
                }
                else
                {                  
                    Pen objLapiz = new Pen(colorDialog1.Color, 1);
                    //Brush brocha = new Brush();
                    objGrafico.DrawEllipse(objLapiz, e.X, e.Y, 50, 50);
                }
        }