Autor
|
Tema: Dibujar Linea (Leído 2,939 veces)
|
Xaina
Desconectado
Mensajes: 39
|
Hola chic@s, para dibujar una linea diagonal, yo hago algo como esto: 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
Mensajes: 284
|
Mira, si esto es lo que andas buscando: Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Hace un pause de N milisegundos Private Sub CmdDibujarLinea_Click() Me.ScaleMode = vbPixels Me.Line (10, 10)-(100, 100), vbBlue For i = 100 To 10 Step -1 Sleep 100 DoEvents Me.Cls 'Sirve para borrar lo que se haya impreso en el formulario :) Me.Line (10, 10)-(100, i), vbBlue Next i End Sub
Bueno, saludos Editado: Y bueno, ya que ando de buen humor, jaja mirate este código, genera un muy bonito efecto: Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Dim Parar As Boolean Private Sub CmdDibujarLinea_Click() Me.ScaleMode = vbPixels Parar = False DeNuevo: Me.Line (10, 10)-(100, 100), vbBlue For i = 100 To 10 Step -1 Sleep 5 DoEvents Me.Cls Me.Line (10, 10)-(100, i), vbBlue Next i For i = 10 To 100 Sleep 2 DoEvents Me.Cls Me.Line (10, 10)-(100, i), vbBlue Next i If Parar = False Then GoTo DeNuevo End If End Sub Private Sub CmdParar_Click() Parar = True End Sub
jaja saludos !
|
|
« Última modificación: 30 Octubre 2007, 03:55 am por HaDeS, - »
|
En línea
|
|
|
|
Xaina
Desconectado
Mensajes: 39
|
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
Mensajes: 284
|
Cuadra las coordenadas: Me.Cls Me.Line (10, i - 90)-(100, i), vbBlue
El Cls solo sirve para limpiar el form, quitalo... ¿Que pasará? . 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
Mensajes: 39
|
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
Mensajes: 284
|
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: Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Hace un pause de N milisegundos Private Sub CmdDibujarLinea_Click() Me.ScaleMode = vbPixels Me.Line (10, 10)-(100, 100), vbBlue For i = 100 To 10 Step -1 Sleep 10 DoEvents Me.Cls 'Sirve para borrar lo que se haya impreso en el formulario :) Me.Line (10, i - 90)-(100, i), vbBlue Next i Me.Line (10, 100)-(10, 10), vbBlack End Sub
Yo ya tengo sueño , 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
Mensajes: 39
|
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
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
se dibuja en el evento paint del formulario... y se dibuja todo todito todo evento_paint clear dibujamos end event
|
|
|
En línea
|
|
|
|
HaDeS, -
WarZone Master
Desconectado
Mensajes: 284
|
Y Bueno, si no queres crear el componente en tiempo de diseño, podes crearlo en tiempo de ejecución con esto: Dim WithEvents Linea As Line Private Sub Form_Load() Set Linea = Form1.Controls.Add("VB.Line", "Linea1") Me.ScaleMode = vbPixels Linea.Visible = True Linea.X1 = 10 Linea.X2 = 100 Linea.Y1 = 20 Linea.Y2 = 20 End Sub
Saludos
|
|
|
En línea
|
|
|
|
Xaina
Desconectado
Mensajes: 39
|
Hola HaDeS y ¡gracias por todo!, eso ultimo era justamente lo que estaba bucando. Xaina... ¡Saludos!
|
|
|
En línea
|
|
|
|
|
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
|
19 Mayo 2011, 23:50 pm
por B€T€B€
|
|
|
Dibujar forma en C#
.NET (C#, VB.NET, ASP)
|
TomaSs
|
1
|
2,704
|
3 Octubre 2012, 16:00 pm
por seba123neo
|
|
|
Dibujar línea
Java
|
JavMan
|
7
|
4,884
|
31 Enero 2013, 21:42 pm
por JavMan
|
|
|
Dibujar linea jPanel
Java
|
avechuche
|
0
|
1,540
|
15 Octubre 2013, 05:49 am
por avechuche
|
|
|
Dibujar Arbol
Programación C/C++
|
SantyXDz
|
3
|
3,399
|
5 Noviembre 2013, 08:03 am
por edr89
|
|