Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: rokchlafen en Noviembre 22, 2014, 02:45:37 pm
-
Al representar se me queda como la siguiente imagen:En un picturebox
(http://s1.postimg.org/4rt9mibi3/grafica.jpg) (http://postimg.org/image/4rt9mibi3/)
Quiero que los numeros del ejeY aparezcan a la izquierda del eje en vez de a la derecha, no se si tengo que añadir algo a picture1.print dblY o sacarlo del for y programarlo de otra forma , aki abajo dejo el codigo que tengo:
For dblX = 0 To 100 Step 10
Picture1.Line (dblX, 0.001)-(dblX, -0.001)
Picture1.Print dblX
Next dblX
For dblY = 0 To 0.12 Step 0.01
Picture1.Line (-1, dblY)-(1, dblY)
If dblY <> 0 Then
Picture1.Print dblY
End If
Next dblY
Muchas gracias de antemano.Un saludo.
PD: Al ejecutar cuando pasa una ventana por encima(sea formulario, mensaje de error o el googlechrome) del picturebox se me borra todo por dando paso la ventana.....como puedo solucionar eso para que no se borre. Muchas gracias de nuevo.
-
PD: Al ejecutar cuando pasa una ventana por encima(sea formulario, mensaje de error o el googlechrome) del picturebox se me borra todo por dando paso la ventana.....como puedo solucionar eso para que no se borre. Muchas gracias de nuevo.
Para que no se borre mas al pasar cualquier ventana encima tenes que poner en la Propiedad del picture AutoRedraw = True
-
Una consulta, que ScaleMode usas en tu PictureBox?
en cuanto a tu pregunta, debes indicar al PictureBox el CurrentX desde donde imprimirá el Texto:
For dblX = 0 To 100 Step 10
Picture1.Line (dblX, 0.001)-(dblX, -0.001)
Picture1.Print dblX
Next dblX
For dblY = 0 To 0.12 Step 0.01
Picture1.Line (-1, dblY)-(1, dblY)
If dblY <> 0 Then
Picture1.CurrentX = 100 ' <--- El valor dependerá del ScaleMode que estés utilizando...
Picture1.Print dblY
End If
Next dblY
PD: Revisa el Form2, te puede dar unas ideas...
https://mega.co.nz/#!ncJU1TqQ!J-luAhIFcj72FebDA8LOGwhZ41Ji2uPZSYChvHwCwj8 (https://mega.co.nz/#!ncJU1TqQ!J-luAhIFcj72FebDA8LOGwhZ41Ji2uPZSYChvHwCwj8)
-
Gracias por la respuesta¡¡
La escala la uso de esta manera: picture1.scale (-20, 0.15)-(110, -0.02)
no se si te referías a eso. Revisare el form2 que mencionas y aviso por aqui.
De nuevo muchas gracias por todo,estan haciendo un gran trabajo en el foro y a mi me habeis sacado ya de mas de un apuro.
Te dejo el codigo completo del formulario de la grafica.De nuevo muchas gracias y un saludo¡¡¡¡
Option Explicit
Private Sub cmdGraphXY_Click()
Picture1.Cls
Picture1.Scale (-20, 0.15)-(110, -0.02)
Picture1.Line (0, 0)-(0, 0.12), vbWhite '''EJE X
Picture1.Line (0, 0)-(100, 0), vbWhite '''EJEY
Dim dblX As Double
Dim dblY As Double
''''divisiones ejes
For dblX = 0 To 100 Step 10
Picture1.Line (dblX, 0.001)-(dblX, -0.001)
Picture1.Print dblX
Next dblX
For dblY = 0 To 0.12 Step 0.01
Picture1.Line (-1, dblY)-(1, dblY)
If dblY <> 0 Then
Picture1.Print dblY
End If
Next dblY
For dblX = 0 To 100 Step 10
Dim i As Integer
For i = LBound(nX) To UBound(nX)
Picture1.PSet (nX(i), (0.2 * 50 * (nY(i))) / (1000)), vbRed
Picture1.DrawWidth = 5
Next i
Next dblX
End Sub
-
Estimado rokchlafen:
si indicas Picture1.CurrentX = -7, debiese trasladar los valores a la izquierda del eje Y....
Option Explicit
Private Sub cmdGraphXY_Click()
Picture1.Cls
Picture1.Scale (-20, 0.15)-(110, -0.02)
Picture1.Line (0, 0)-(0, 0.12), vbWhite '''EJE X
Picture1.Line (0, 0)-(100, 0), vbWhite '''EJEY
Dim dblX As Double
Dim dblY As Double
''''divisiones ejes
For dblX = 0 To 100 Step 10
Picture1.Line (dblX, 0.001)-(dblX, -0.001)
Picture1.Print dblX
Next dblX
For dblY = 0 To 0.12 Step 0.01
Picture1.Line (-1, dblY)-(1, dblY)
If dblY <> 0 Then
Picture1.CurrentX = -7 '<---- Con este valor debiese andar OK!
Picture1.Print dblY
End If
Next dblY
For dblX = 0 To 100 Step 10
Dim i As Integer
For i = LBound(nX) To UBound(nX)
Picture1.PSet (nX(i), (0.2 * 50 * (nY(i))) / (1000)), vbRed
Picture1.DrawWidth = 5
Next i
Next dblX
End Sub
Saludos Cordiales!
-
Genial el currentX, es justo lo que necesitaba. Gracias maquina¡¡¡¡¡¡ :)