Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Como Borro Un Area En La Que Estoy Dibujando Con Paint?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Borro Un Area En La Que Estoy Dibujando Con Paint? 
 
otra preguntonta:

estoy dibujando en una DrawingArea

Paint.Begin(pizarron)

.
.
Paint.end

hermoso, ahora, quiero re-dibujar, pero primero borrando lo que habia:

Paint.Clear ' a diferencia de la clase Draw, aqui no existe  ---> Error!
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Borro Un Area En La Que Estoy Dibujando Con Paint? 
 
tercoIde:

Yo lo que hago es dibujar un rectangulo relleno de color blanco del tamaño de la zona que quiero borrar (o de toda la extensión del DrawingArea), asi "borro"

Saludos

Julio
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Borro Un Area En La Que Estoy Dibujando Con Paint? 
 
...una otra posibilidad...con un Return....  

Private a As Byte


Public Sub DrawingArea1_Draw()

 Dim c As Integer[] = [Color.Blue, Color.Green, Color.Yellow, Color.Red]
 Dim p As Float[] = [0, 0.34, 0.67, 1]

  With Paint
      If a = 1 Then
      Return
    Else
      .Brush = .LinearGradient(10, 40, 300, 40, c, p)
      .Rectangle(10, 40, 300, 40)
      .Fill
    Endif
  End With

End


Public Sub Button1_Click()

  a = 1

  DrawingArea1.Refresh

End

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Borro Un Area En La Que Estoy Dibujando Con Paint? 
 
tercoIDE:

Tambien hay otra forma de hacerlo:

Creas un array donde tengas todos los elementos que tengas que dibujar.

El dibujo lo array recorriendo ese array

Y luego si tienes que borrar alguno de ellos, solamente lo eliminas del array.

Por ejemplo.

Imagina que tienes que dibujar 10 lineas (en tu caso barras   )

Creas una estructura "linea" que tenga la informacion de las "linea": x0,y0,y1,y2

Creas un array de estructura del tipo linea, donde vas a añadir las distintas lineas que tienes que dibujar.

Cuando vayas a dibujar, recorres el array de estrutura tipo linea, para ir dibujando.

Si en algun momento quieres borrar una linea, sabiendo el número, borras el elemento del array, y cuando se vaya a dibujar, ya no aparecerá dicho elemento.


Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Borro Un Area En La Que Estoy Dibujando Con Paint? 
 
jsbsan, yo creo que de las tus soluciones la más breve y mejor es la primera: con un rectangulo relleno de un color, por ejemplo aquello por defecto.
 



 
última edición por vuott el Miercoles, 26 Agosto 2015, 15:41; editado 3 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Borro Un Area En La Que Estoy Dibujando Con Paint? 
 
vuott escribió: [Ver mensaje]
jsbsan, yo creo que la solución más breve y mejor es la tu dijiste: con un rectangulo relleno de un color, por ejemplo aquello por defecto.


sin dudas!

Lo bueno, si es breve, dos veces bueno!!

gracias a ambos
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Borro Un Area En La Que Estoy Dibujando Con Paint? 
 
tercoIDE escribió: [Ver mensaje]
vuott escribió: [Ver mensaje]
jsbsan, yo creo que la solución más breve y mejor es la tu dijiste: con un rectangulo relleno de un color, por ejemplo aquello por defecto.


sin dudas!

Lo bueno, si es breve, dos veces bueno!!

gracias a ambos


Si, pero no cabe duda que la solución de Julio es "La Solución". Guardar los dibujos, trazos, etc. en arrays de estructuras es la manera correcta de dibujar y tenerlo todo bajo control, aunque parezca más complicado. Si además usamos el paradigma POO, resulta que todavía es más sencillo (y creo que lo más adecuado).

Por otra parte, si queremos que nuestro lienzo tenga la capacidad de deshacer y rehacer cambios, me temo que es la única solución posible.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Borro Un Area En La Que Estoy Dibujando Con Paint? 
 
...mi parece que tercoIDE quiere borrar todo el dibujo.  
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Borro Un Area En La Que Estoy Dibujando Con Paint? 
 
Bueno, podemos utilizar tambien un querido amigo de jsbsan, es decir el... " Divino ".    


Al iniciar el programa, tenemos que asignar cualquier color de fondo a la DrawingArea (codigo para sistema de 64-bit):
Public Sub Form_Open()

' Asignamos al fondo, por ejemplo, el color &D6D6D6:
   DrawingArea1.Background = Color.Background

End


Public Sub DrawingArea1_Draw()
  
' El dibujo es simplemente un círculo rojo:
  With Paint
    .Brush = Paint.Color(Color.Red)
    .Ellipse(100, 10, 100, 100)
    .Stroke
    .End
  End With

End


Public Sub Button1_Click()   ' Para borrar el dibujo de la DrawingArea

  Dim p1, p2 As Pointer      '   <------ El "Divino"
  Dim st As Stream
    
   p1 = Object.Address(DrawingArea1)
    
   p2 = Pointer@(p1 + 24)
 
' Escribimos en la parte de area de memoria del "DrawingArea" dedicada al color de background del objecto:
   st = Memory p2 For Write
   Write #st, &D6D6D6FFFFFFFF As Long
   st.Close
  
   Object.Lock(DrawingArea1)
   DrawingArea1.Refresh

End


Public Sub Button2_Click()   ' Para dibujar el círculo rojo de nuevo

   Object.Unlock(DrawingArea1)
   DrawingArea1.Refresh

End

 



 
última edición por vuott el Viernes, 28 Agosto 2015, 18:55; editado 6 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Borro Un Area En La Que Estoy Dibujando Con Paint? 
 
vuott escribió: [Ver mensaje]
Bueno, podemos utilizar tambien un querido amigo de jsbsan, es decir el... " Divino ".    


Al iniciar el programa, tenemos que asignar cualquier color de fondo a la DrawingArea (codigo para sistema de 64-bit):
Public Sub Form_Open()

' Asignamos al fondo, por ejemplo, el color &D6D6D6:
   DrawingArea1.Background = Color.Background

End


Public Sub DrawingArea1_Draw()
  
' El dibujo es simplemente un círculo rojo:
  With Paint
    .Brush = Paint.Color(Color.Red)
    .Ellipse(100, 10, 100, 100)
    .Stroke
    .End
  End With

End


Public Sub Button1_Click()   ' Para borrar el dibujo de la DrawingArea

  Dim p1, p2 As Pointer      '   <------ El "Divino"
  Dim st As Stream
    
   p1 = Object.Address(DrawingArea1)
    
   p2 = Pointer@(p1 + 24)
 
' Escribimos en la parte de area de memoria del "DrawingArea" dedicada al color de background del objecto:
   st = Memory p2 For Write
   Write #st, &D6D6D6FFFFFFFF As Long
   st.Close
  
   Object.Lock(DrawingArea1)
   DrawingArea1.Refresh

End


Public Sub Button2_Click()   ' Para dibujar el círculo rojo de nuevo

   Object.Unlock(DrawingArea1)
   DrawingArea1.Refresh

End


"Voutt y sus punteros" que tal el titulo de tu nuevo libro?
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Boton Guardar Tabla Me Borro Los Registros ivanovichenco Bases de Datos 6 Sabado, 12 Marzo 2011, 20:28 Ver último mensaje
ivanovichenco
No hay nuevos mensajes Arrays De Objetos....¿como Borro Un Eleme... jsbsan General 5 Lunes, 12 Septiembre 2011, 19:49 Ver último mensaje
jsbsan
No hay nuevos mensajes Como Saber En Que Directorio Estoy... jsbsan General 8 Viernes, 08 Abril 2016, 17:37 Ver último mensaje
jguardon
No hay nuevos mensajes Dibujando Líneas Shell General 5 Domingo, 15 Abril 2018, 08:46 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron