Visual Basic - Dibujar Rectangulo

Life is soft - evento anual de software empresarial
 
Vista:

Dibujar Rectangulo

Publicado por Dori (8 intervenciones) el 10/01/2006 19:35:03
Hola!
Me interesa saber el código para dibujar un rectángulo pero que cuando yo haga el primer clic, la linea me siga hasta que yo haga el segundo clic del rectángulo.

Saludos,

Dori.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dibujar Rectangulo

Publicado por Jorge (231 intervenciones) el 10/01/2006 23:10:59
Ante de nada en tu form, crea un picture, llamalo picture1
y copia esto

Dim Xini As Single, Yini As Single'Valores donde hizo el primer cilick
Dim Presiono As Boolean' Para que empieza al hacer click
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Xini = X
Yini = Y
Presiono = True
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Presiono = True Then
Picture1.Cls'Limpia las cordenadas anteriores
Picture1.Line (Xini, Yini)-(X, Y), vbRed, B ' B es para constrir un rectangulo solo el borde si pones BF el interior tambien se Pinta

End If
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (Xini, Yini)-(X, Y), vbRed, B 'VbRed es el color
Presiono = False
End Sub

Espero que te sirva
Por cierto esto esta hecho para cuando presiona y suelta, para el segundo click el cambio es pequeño.

Bueno suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dibujar Rectangulo

Publicado por Dori (8 intervenciones) el 11/01/2006 15:59:35
Hola!

Muchas gracias, el código me ha servido. Pero me interesa que pueda dibujar más de un rectángulo, que cuando haya dibujado uno y vuelva hacer click para dibujar el otro, el primero no desaparezca.

No sé si pido demasiado.

Gracias anticipadas,

Dori.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dibujar Rectangulo

Publicado por Jorge (231 intervenciones) el 11/01/2006 16:10:02
lo que se me ocurre, para no complicarte mucho es que guardes en un arreglo las posiciones iniciales y finales de cada rectangulo, no se como se vera, puede ser que te alente un poco la vision de los rectangulos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dibujar Rectangulo

Publicado por Dori (8 intervenciones) el 11/01/2006 19:36:30
Cómo se guarda en un arreglo?? :( No te entiendo, lo siento!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dibujar Rectangulo

Publicado por Jorge (231 intervenciones) el 11/01/2006 20:20:26
Estaes una forma No optimizada de hacerlo, pues una forma mas elegante seria con clases y colecciones, pero es un poco mas complicada, pero mas facil de usar y tiene la ventaja de que no tendrias limite a la hora de hacer cuadros, el unico lmite seria la memoria de la maquina.

Aqui esta el codigo

Dim Xini As Single, Yini As Single 'Valores donde hizo el primer cilick
Dim Presiono As Boolean ' Para que empieza al hacer click
Dim ArrXIni(1 To 1000) As Single, ArrXFin(1 To 1000) As Single, ArrYIni(1 To 1000) As Single, ArrYFin(1 To 1000) As Single'arreglos de las posiciones de los vertices, son unidimensionales.
Dim IndiceArrs As Integer
Private Sub Form_Load()
IndiceArrs = 1
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Xini = X
Yini = Y
Presiono = True
ArrXIni(IndiceArrs) = X
ArrYIni(IndiceArrs) = Y
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Presiono = True Then
Picture1.Cls 'Limpia las cordenadas anteriores
Picture1.Line (Xini, Yini)-(X, Y), vbRed, B ' B es para constrir un rectangulo solo el borde si pones BF el interior tambien se Pinta
If IndiceArrs <> 1 Then
For i = 1 To IndiceArrs - 1`para que no entre al ultimo caso, pues lo estas dibujando
Picture1.Line (ArrXIni(i), ArrYIni(i))-(ArrXFin(i), ArrYFin(i)), vbRed, B
Next
End If
End If
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (Xini, Yini)-(X, Y), vbRed, B 'VbRed es el color
Presiono = False
ArrXFin(IndiceArrs) = X
ArrYFin(IndiceArrs) = Y
IndiceArrs = IndiceArrs + 1
End Sub

Espero que te sirva, cualquier cosa me mandas un EMail, Por cierto para que lo estas ocupando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dibujar Rectangulo

Publicado por Dori (8 intervenciones) el 25/01/2006 15:28:04
HOla!

Muchas Graciassss!! PRUEBA CONSEGUIDA! ajajjaaj!

Lo necesitaba para un trabajo.

Dori.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar