Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: rokchlafen en Noviembre 22, 2014, 02:45:37 pm

Título: picture1.print dblX pinta numeros a la derecha del eje Y,pasarlor a la izquierda
Publicado 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.
Título: Re:picture1.print dblX pinta numeros a la derecha del eje Y,pasarlor a la izquierda
Publicado por: E N T E R en Noviembre 22, 2014, 03:05:50 pm
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
Título: Re:picture1.print dblX pinta numeros a la derecha del eje Y,pasarlor a la izquierda
Publicado por: AxioUK en Noviembre 23, 2014, 01:56:48 pm
Una consulta, que ScaleMode usas en tu PictureBox?

en cuanto a tu pregunta, debes indicar al PictureBox el CurrentX desde donde imprimirá el Texto:
Código: (VB) [Seleccionar]
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)
Título: Re:picture1.print dblX pinta numeros a la derecha del eje Y,pasarlor a la izquierda
Publicado por: rokchlafen en Noviembre 24, 2014, 09:45:48 pm
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
Título: Re:picture1.print dblX pinta numeros a la derecha del eje Y,pasarlor a la izquierda
Publicado por: AxioUK en Noviembre 24, 2014, 11:10:27 pm
Estimado rokchlafen:

si indicas Picture1.CurrentX = -7, debiese trasladar los valores a la izquierda del eje Y....
Código: (VB) [Seleccionar]
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!
Título: Re:picture1.print dblX pinta numeros a la derecha del eje Y,pasarlor a la izquierda
Publicado por: rokchlafen en Diciembre 08, 2014, 12:14:38 pm
Genial el currentX, es justo lo que necesitaba. Gracias maquina¡¡¡¡¡¡ :)