elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Dibujar Linea
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dibujar Linea  (Leído 2,939 veces)
Xaina

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Dibujar Linea
« en: 30 Octubre 2007, 03:22 am »

   Hola chic@s, para dibujar una linea diagonal, yo hago algo como esto:

Código:
Private Sub CmdDibujarLinea_Click()
    Me.ScaleMode = vbPixels
    Me.Line (10, 10)-(100, 100), vbBlue
End Sub

   Todo bien hasta aqui, el problema es que yo requiero mover esa linea un poco mas arriba en tiempo de ejecución y ese movimiento debe ser divisado lentamente.

   Logre conseguir que una linea se moviera, usando el 'objeto Line' y un timer, pero no me sirve asi, xq ¿qué pasaria despues con la linea que fue dibujada en tiempo de jecución usando el método Line?

   ¿Es posible dibujar una linea, usando solo el 'Objeto Line' en tiempo de ejecución y descartando totalmente al método Line?

   Agradeceria sus respuestas.

   Xaina... ¡Saludos!


En línea

HaDeS, -
WarZone Master

Desconectado Desconectado

Mensajes: 284



Ver Perfil WWW
Re: Dibujar Linea
« Respuesta #1 en: 30 Octubre 2007, 03:42 am »

Mira, si esto es lo que andas buscando:
Código
  1. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Hace un pause de N milisegundos
  2. Private Sub CmdDibujarLinea_Click()
  3. Me.ScaleMode = vbPixels
  4. Me.Line (10, 10)-(100, 100), vbBlue
  5. For i = 100 To 10 Step -1
  6.    Sleep 100
  7.    DoEvents
  8.    Me.Cls 'Sirve para borrar lo que se haya impreso en el formulario :)
  9.    Me.Line (10, 10)-(100, i), vbBlue
  10. Next i
  11. End Sub
  12.  

Bueno, saludos :)

Editado: Y bueno, ya que ando de buen humor, jaja mirate este código, genera un muy bonito efecto:
Código
  1. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  2. Dim Parar As Boolean
  3.  
  4. Private Sub CmdDibujarLinea_Click()
  5. Me.ScaleMode = vbPixels
  6. Parar = False
  7. DeNuevo:
  8. Me.Line (10, 10)-(100, 100), vbBlue
  9. For i = 100 To 10 Step -1
  10.    Sleep 5
  11.    DoEvents
  12.    Me.Cls
  13.    Me.Line (10, 10)-(100, i), vbBlue
  14. Next i
  15. For i = 10 To 100
  16.    Sleep 2
  17.    DoEvents
  18.    Me.Cls
  19.    Me.Line (10, 10)-(100, i), vbBlue
  20. Next i
  21. If Parar = False Then
  22.    GoTo DeNuevo
  23. End If
  24. End Sub
  25.  
  26. Private Sub CmdParar_Click()
  27. Parar = True
  28. End Sub
  29.  
jaja saludos !


« Última modificación: 30 Octubre 2007, 03:55 am por HaDeS, - » En línea

Xaina

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: Dibujar Linea
« Respuesta #2 en: 30 Octubre 2007, 03:56 am »

   Hola HaDeS, esta bien el code, pero la linea debe ser siempre diagonal, nunca puede cambiar su forma, mas si su posición.

   Ese 'Me.cls' uhm...  :¬¬ no termina de cuadrarme ¿qué pasaria si tengo dos lineas más dibujadas (en total 3) y no quiero que se borren estas últimas 2? 

   Xaina... ¡Saludos!
« Última modificación: 30 Octubre 2007, 04:22 am por Xaina » En línea

HaDeS, -
WarZone Master

Desconectado Desconectado

Mensajes: 284



Ver Perfil WWW
Re: Dibujar Linea
« Respuesta #3 en: 30 Octubre 2007, 04:04 am »

Cuadra las coordenadas:
Código
  1.    Me.Cls
  2.    Me.Line (10, i - 90)-(100, i), vbBlue
  3.  
El Cls solo sirve para limpiar el form, quitalo... ¿Que pasará? :P.
y si no queres que se te borren esas dos últimas lineas pués no pongas el Me.cls (Respuesta a la pregunta anterior)
Bueno, jaja estoy algo confuso. no sé que queres decir con eso de las dos últimas lineas.

Saludos!
En línea

Xaina

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: Dibujar Linea
« Respuesta #4 en: 30 Octubre 2007, 04:19 am »

   Bueno... eso de quitar el cls, en este, caso no es buena idea...

   Solo imaginate: como cuando se grafica una función a fin, con tres puntos (P1, P2 y p3), dibujamos en el cuadrante positivo, tres lineas (con los puntos antes mencionados)
 y se desea que la linea 1 se mueva diagonalmente hacia arriba, sin perder su forma y sin que las otras 2 lineas que fueron dibujadas, se borren.

   No se, si me entiendes...

   Xaina

 
En línea

HaDeS, -
WarZone Master

Desconectado Desconectado

Mensajes: 284



Ver Perfil WWW
Re: Dibujar Linea
« Respuesta #5 en: 30 Octubre 2007, 04:40 am »

Lo que pasa con "Me.Line" es que es una impresión en el form, es como si vos cogieras un lápiz y rayaras algunas líneas, y luego utilizas el borrador "Me.Cls" para borrar aquellas líneas. Lo que se puede hacer en este caso es coger un lapicero "Componente Line", e hicieras el trazo con este lapicero, así el borrador no serviría para borrar aquella línea.
Si no queres utilizar este lapicero, podes al final de cada For, trazar la línea con el lápiz xD
Bueno, no sé si me hice entender jaja, acá esta el code:
Código
  1. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Hace un pause de N milisegundos
  2. Private Sub CmdDibujarLinea_Click()
  3. Me.ScaleMode = vbPixels
  4. Me.Line (10, 10)-(100, 100), vbBlue
  5. For i = 100 To 10 Step -1
  6.    Sleep 10
  7.    DoEvents
  8.    Me.Cls 'Sirve para borrar lo que se haya impreso en el formulario :)
  9.    Me.Line (10, i - 90)-(100, i), vbBlue
  10. Next i
  11. Me.Line (10, 100)-(10, 10), vbBlack
  12. End Sub
  13.  
Yo ya tengo sueño :P, seguramente para mañana te contestan bien, Saludos!

Editado: Como ando aprendiendo a tildar, entonces corregí. xD
« Última modificación: 30 Octubre 2007, 04:42 am por HaDeS, - » En línea

Xaina

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: Dibujar Linea
« Respuesta #6 en: 30 Octubre 2007, 04:52 am »

   Mandando a dibujar la linea negra, dentro del for esta bien, la borra, pero la vuelve a dibujar y es como si no la hubiera desaparecido.

  La siguiente pregunta respondela cuando puedas, yo tambien me voy a dormir.

  ¿Es posible dibujar una linea en tiempo de ejecución usando el componente Line?

  Xaina... ¡Saludos!
« Última modificación: 30 Octubre 2007, 04:56 am por Xaina » En línea

Hans el Topo


Desconectado Desconectado

Mensajes: 1.754


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: Dibujar Linea
« Respuesta #7 en: 30 Octubre 2007, 13:34 pm »

se dibuja en el evento paint del formulario...

y se dibuja todo todito todo

Código:
evento_paint
    clear
   
    dibujamos
end event
En línea

HaDeS, -
WarZone Master

Desconectado Desconectado

Mensajes: 284



Ver Perfil WWW
Re: Dibujar Linea
« Respuesta #8 en: 30 Octubre 2007, 22:25 pm »

Y Bueno, si no queres crear el componente en tiempo de diseño, podes crearlo en tiempo de ejecución con esto:
Código
  1. Dim WithEvents Linea As Line
  2. Private Sub Form_Load()
  3. Set Linea = Form1.Controls.Add("VB.Line", "Linea1")
  4. Me.ScaleMode = vbPixels
  5. Linea.Visible = True
  6. Linea.X1 = 10
  7. Linea.X2 = 100
  8. Linea.Y1 = 20
  9. Linea.Y2 = 20
  10. End Sub
  11.  

Saludos ;)
En línea

Xaina

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: Dibujar Linea
« Respuesta #9 en: 31 Octubre 2007, 03:39 am »

   Hola HaDeS y ¡gracias por todo!, eso ultimo era justamente lo que estaba bucando. 

   Xaina... ¡Saludos!  :-*
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sumo Paint; Dibujar en linea sin descargar nada.
Foro Libre
B€T€B€ 0 4,379 Último mensaje 19 Mayo 2011, 23:50 pm
por B€T€B€
Dibujar forma en C#
.NET (C#, VB.NET, ASP)
TomaSs 1 2,704 Último mensaje 3 Octubre 2012, 16:00 pm
por seba123neo
Dibujar línea
Java
JavMan 7 4,884 Último mensaje 31 Enero 2013, 21:42 pm
por JavMan
Dibujar linea jPanel
Java
avechuche 0 1,540 Último mensaje 15 Octubre 2013, 05:49 am
por avechuche
Dibujar Arbol
Programación C/C++
SantyXDz 3 3,399 Último mensaje 5 Noviembre 2013, 08:03 am
por edr89
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines