Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Dibujar un rectangulo de 2x2 en picturebox y poder borrarlo

Estas en el tema de Dibujar un rectangulo de 2x2 en picturebox y poder borrarlo en el foro de Visual Basic clásico en Foros del Web. Buenas compañer@s. Estoy tratando de hacer un programa en el que pinchando en cualquier parte de un Picture Box, se pinte un rectangulo en ese ...
  #1 (permalink)  
Antiguo 07/08/2010, 19:50
 
Fecha de Ingreso: abril-2009
Mensajes: 72
Antigüedad: 14 años, 10 meses
Puntos: 0
Pregunta Dibujar un rectangulo de 2x2 en picturebox y poder borrarlo

Buenas compañer@s.

Estoy tratando de hacer un programa en el que pinchando en cualquier parte de un Picture Box, se pinte un rectangulo en ese punto, hasta aquí bien, consigo que se pinte bien, etc...

La propiedad Autoredraw del Picture la tengo a true, ya que en el form load me pinta una cuadricula/grilla, y me interesa que si tengo que poner varios cuadros, estos se queden pintados.

Pero me han surgido un par de dudas.

El primero, es que me gustaria que en lugar de pintar solo un rectangulo, me gustaria que este estuviera dividido en cuatro rectangulitos, no se si me explico..., seria un rectangulo de dos columnas y dos filas, y cuyo punto central sea donde yo pincho.

La otra duda, es que si por casualidad me he equivocado de sitio al pintar un rectangulo, ¿como podria hacer para retroceder ese paso? O ¿como puedo borrar solo ese último rectangulo que he pintado?

Espero que me podais ayudar, gracias de antemano.

Un saludo.

Alex.
  #2 (permalink)  
Antiguo 17/10/2010, 20:39
 
Fecha de Ingreso: abril-2009
Mensajes: 72
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Dibujar un rectangulo de 2x2 en picturebox y poder borrarlo

Jo, más de dos meses buscando y nada.

No sé ya donde recurrir.

Si hay alguien que pueda ayudarme se lo agradeceria mucho.

Muchas gracias por vuestra paciencia.

un saludo.
  #3 (permalink)  
Antiguo 17/10/2010, 22:14
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Dibujar un rectangulo de 2x2 en picturebox y poder borrarlo

Hola, mira esta un poco confuso el titulo porque dice un rectangulo de 2x2, para mi eso seria un cuadrado, pero creo que si entiendo tu duda por el contexto que planteas mira aqui planteo mi interpretación:

Lo que quieres es que en un principio se dibuje algo como una malla de rectangulos de un color determinado, y despues al darle click a un rectangulo de la malla se forme una cruz que su interseccion apunte al lugar en el rectangulo en donde hiciste click, es decir que la cruz no necesariamente debe de partir en cuatro partes iguales al rectangulo, sino que es la interseccion la que apunta el lugar dentro del rectangulo en donde diste click.


si algo esta mal porfavor dimelo y lo checamos.
  #4 (permalink)  
Antiguo 18/10/2010, 04:00
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Dibujar un rectangulo de 2x2 en picturebox y poder borrarlo

A ver si esto te sirve de ayuda. Simplemente pinta una grilla de 2x2 en un picture al pinchar con el boton izquierdo, y al pinchar con el derecho la pinta con el color de fondo del picture haciendo que desaparezca. Puedes memorizar las coordenadas y poner un boton deshacer en lugar del boton derecho.

Si tu picture tiene ya algo dibujado debajo del recuadro, borrar la grilla será más complicado que esto, pero quizá te pueda servir de ayuda.

Para probarlo, solo crea un proyecto con un picture (picture1) y pega el código.

Código vb:
Ver original
  1. Private Type Coordenada
  2.   X As Integer
  3.   Y As Integer
  4. End Type
  5.  
  6. Dim PuntoClick As Coordenada
  7. Dim ColorLineas As ColorConstants
  8.  
  9. Private Sub PintaGrilla(Pic As PictureBox, ByVal X As Long, ByVal Y As Long, Optional ByVal Color As ColorConstants = vbBlack, Optional ByVal LongLin As Long = 500)
  10.   Pic.ForeColor = Color
  11.   Pic.Line (X - LongLin, Y)-(X + LongLin, Y)
  12.   Pic.Line (X, Y - LongLin)-(X, Y + LongLin)
  13.   Pic.Line (X - LongLin, Y - LongLin)-(X + LongLin, Y - LongLin)
  14.   Pic.Line (X - LongLin, Y + LongLin)-(X + LongLin, Y + LongLin)
  15.   Pic.Line (X - LongLin, Y - LongLin)-(X - LongLin, Y + LongLin)
  16.   Pic.Line (X + LongLin, Y - LongLin)-(X + LongLin, Y + LongLin)
  17. End Sub
  18.  
  19. Private Sub Picture1_Click()
  20.   PintaGrilla Picture1, PuntoClick.X, PuntoClick.Y, ColorLineas
  21. End Sub
  22.  
  23. Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  24.   PuntoClick.X = X
  25.   PuntoClick.Y = Y
  26.   ColorLineas = IIf(Button = vbLeftButton, vbBlack, Picture1.BackColor)
  27. End Sub

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Etiquetas: dibujar, picturebox, poder
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:55.