Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda Novato

Estas en el tema de Ayuda Novato en el foro de Visual Basic clásico en Foros del Web. Hola! Es la primera vez que intento hacer algo con VB6, la verdad es que no tengo idea de programacion, pero me gustaria aprender, almenos ...
  #1 (permalink)  
Antiguo 26/10/2009, 15:51
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 5 meses
Puntos: 0
Ayuda Novato

Hola!
Es la primera vez que intento hacer algo con VB6, la verdad es que no tengo idea de programacion, pero me gustaria aprender, almenos para hacer programas sencillos como el que tengo entre manos.

El problema con el que me encuentro es el siguiente:
tengo dos hscrollbar
HScrollbar1 min13 max19 y esto se refleja en txtpin
HScrollbar2 min21 max30 y esto se refleja en txtcor
el resultado de la division se refleja en txtRD

el problema que tengo es que cuando le mando al boton 1 hacer esto
txtRDVel.text = Val(txtRD.text) * (75 / 19) * (33 / 17)
en txtRDVel no se refleja bien la operacion, pues solo me coje el numero entero de txtRD y no coje los decimales

Un ejemplo supongamos que HScrollbar1 es 13 y HScrollbar2 es 30 el resultado de la division es 30/13=2,30769230
esto me sale en txtRD y esta bien, pero en txtRDVel me tendria que salir 17,6827815 y me sale 15,3250773 pues solo me coje el numero entero 2 y ovbia lo que hay detras de la coma
os dejo el codigo para que lo mireis

Private Sub Form_Load()
Dim txtRD As Currency
Dim txtRDVel As Currency
End Sub

Private Sub HScroll1_Change()
txtPin.text = HScroll1.Value
txtRD.text = Val(HScroll2.Value) / Val(HScroll1.Value)
End Sub

Private Sub HScroll2_Change()
txtCor.text = HScroll2.Value
txtRD.text = Val(HScroll2.Value) / Val(HScroll1.Value)
End Sub

Private Sub HScroll3_Change()
txtVel.text = HScroll3.Value
End Sub

Private Sub Exit_Click()
End
End Sub

Private Sub Command1_Click()
Dim text As Currency
txtRDVel.text = (75 / 19) * (33 / 17) * Val(txtRD.text)
End Sub

Muchas gracias
  #2 (permalink)  
Antiguo 26/10/2009, 16:52
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Ayuda Novato

Prueba esta línea en el command1


txtRDVel.text = (75 / 19) * (33 / 17) * cDbl(txtRD.text)

PD: También puedes usar los textbox directamente en la formula:

txtRDVel.text = (75 / 19) * (33 / 17) * txtRD.text

Verás que el resultado es el mismo que con cDbl

Última edición por pkj; 26/10/2009 a las 17:01
  #3 (permalink)  
Antiguo 27/10/2009, 14:15
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda Novato

Muchas gracias, ahora funciona a la perfeccion!
lo de poner directamente la formula en el txtRDVel no me vale, pues son 6 botones distintos
pues cada boton se refiere a una velocidad con una formula distinta.
Otra pregunta mas si no es mucho abusar, si esto en vez de con botones lo quisiese hacer con una HScrollbar con Min 1 Max 6 se podria?
Es decir que me saliese en txtVel 1, 2, 3, 4, 5, 6 y en txtRDVel el resultado de las multiplicaciones.
Es que ahora lo tengo con 6 Botones y quedaria mejor con una HScrollbar.
Si no se puede o es muy complicado, vale igual con los botones.

De nuevo muchas gracias!
Saludos
  #4 (permalink)  
Antiguo 27/10/2009, 15:04
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Ayuda Novato

Imagino que el hscroll3 ya está usando min1 max6, ya que es el que pone el valor en txtVel y dices que son 6 valores. Solo tendrías que cámbiarlo por:

Código :
Ver original
  1. Private Sub HScroll3_Change()
  2.   txtVel.text = HScroll3.Value
  3.   Select Case HScroll3.Value
  4.     Case 1:
  5.       txtRDVel.text = (75 / 19) * (33 / 17) * cDbl(txtRD.text)
  6.     Case 2:
  7.       txtRDVel.text = (75 / 19) * (33 / 17) * cDbl(txtRD.text) ' CAMBIANDO LAS FORMULAS
  8.     Case 3:
  9.       txtRDVel.text = (75 / 19) * (33 / 17) * cDbl(txtRD.text) ' CAMBIANDO LAS FORMULAS
  10.     Case 4:
  11.       txtRDVel.text = (75 / 19) * (33 / 17) * cDbl(txtRD.text) ' CAMBIANDO LAS FORMULAS
  12.     Case 5:
  13.       txtRDVel.text = (75 / 19) * (33 / 17) * cDbl(txtRD.text) ' CAMBIANDO LAS FORMULAS
  14.     Case 6:
  15.       txtRDVel.text = (75 / 19) * (33 / 17) * cDbl(txtRD.text) ' CAMBIANDO LAS FORMULAS
  16.   End Select
  17. End Sub

Creo que así funcionará.
  #5 (permalink)  
Antiguo 27/10/2009, 15:18
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda Novato

Ahora te comento que voy a probarlo.
de momento con los botones va perfecto!
el codigo es este

Private Sub HScrollPin_Change()
txtPin.text = HScrollPin.Value
txtRD.text = Val(HScrollCor.Value) / Val(HScrollPin.Value)
End Sub
Private Sub HScrollCor_Change()
txtCor.text = HScrollCor.Value
txtRD.text = Val(HScrollCor.Value) / Val(HScrollPin.Value)
End Sub
Private Sub HScrollRPM_Change()
txtRPM.text = Val(HScrollRPM.Value)
txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
End Sub
Private Sub Vel1_Click()
txtRDVel.text = (75 / 19) * (33 / 17) * CDbl(txtRD.text)
txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
txtVel.text = 1
End Sub
Private Sub Vel2_Click()
txtRDVel.text = (75 / 19) * (29 / 16) * CDbl(txtRD.text)
txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
txtVel.text = 2
End Sub
Private Sub Vel3_Click()
txtRDVel.text = (75 / 19) * (27 / 18) * CDbl(txtRD.text)
txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
txtVel.text = 3
End Sub
Private Sub Vel4_Click()
txtRDVel.text = (75 / 19) * (27 / 22) * CDbl(txtRD.text)
txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
txtVel.text = 4
End Sub
Private Sub Vel5_Click()
txtRDVel.text = (75 / 19) * (23 / 22) * CDbl(txtRD.text)
txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
txtVel.text = 5
End Sub
Private Sub Vel6_Click()
txtRDVel.text = (75 / 19) * (25 / 27) * CDbl(txtRD.text)
txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
txtVel.text = 6
End Sub
Private Sub Exit_Click()
End
End Sub

Hasta ahora!
  #6 (permalink)  
Antiguo 27/10/2009, 15:27
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Ayuda Novato

Crea un HScroll llamado HScrollVel y cambias el codigo de los 6 botones por:

Código :
Ver original
  1. Private Sub HScrollVel_Change()
  2.   txtVel.text = Cstr(HScrollVel.Value)
  3.   Select Case HScrollVel.Value
  4.     Case 1:
  5.       txtRDVel.text = (75 / 19) * (33 / 17) * CDbl(txtRD.text)
  6.       txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
  7.     Case 2:
  8.       txtRDVel.text = (75 / 19) * (29 / 16) * CDbl(txtRD.text)
  9.       txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
  10.     Case 3:
  11.       txtRDVel.text = (75 / 19) * (27 / 18) * CDbl(txtRD.text)
  12.       txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
  13.     Case 4:
  14.       txtRDVel.text = (75 / 19) * (27 / 22) * CDbl(txtRD.text)
  15.       txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
  16.     Case 5:
  17.       txtRDVel.text = (75 / 19) * (23 / 22) * CDbl(txtRD.text)
  18.       txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
  19.     Case 6:
  20.       txtRDVel.text = (75 / 19) * (25 / 27) * CDbl(txtRD.text)
  21.       txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
  22.   End Select
  23. End Sub

Última edición por pkj; 12/11/2009 a las 00:12
  #7 (permalink)  
Antiguo 27/10/2009, 15:48
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda Novato

VALLA QUE SI FUNCIONAAAAAAAA!!!!
jejejej muchisimas gracias!!!

Ahora a quedado a si

Private Sub HScrollPin_Change()
txtPin.text = HScrollPin.Value
txtRD.text = Val(HScrollCor.Value) / Val(HScrollPin.Value)
End Sub
Private Sub HScrollCor_Change()
txtCor.text = HScrollCor.Value
txtRD.text = Val(HScrollCor.Value) / Val(HScrollPin.Value)
End Sub
Private Sub HScrollSelVel_Change()
txtVel.text = HScrollSelVel.Value
Select Case HScrollSelVel.Value
Case 1:
txtRDVel.text = (75 / 19) * (33 / 17) * CDbl(txtRD.text)
Case 2:
txtRDVel.text = (75 / 19) * (29 / 16) * CDbl(txtRD.text)
Case 3:
txtRDVel.text = (75 / 19) * (27 / 18) * CDbl(txtRD.text)
Case 4:
txtRDVel.text = (75 / 19) * (27 / 22) * CDbl(txtRD.text)
Case 5:
txtRDVel.text = (75 / 19) * (23 / 22) * CDbl(txtRD.text)
Case 6:
txtRDVel.text = (75 / 19) * (25 / 27) * CDbl(txtRD.text)
End Select
txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
End Sub
Private Sub HScrollRPM_Change()
txtRPM.text = Val(HScrollRPM.Value)
txtKMh.text = (Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88) / 1000
End Sub
Private Sub Exit_Click()
End
End Sub

Me falta aun darle unos pequeños retoques, color (esto es facil) que el programa al ejecutarse reproduzca un mp3 (creo que tambien es facil), que me establezca por defecto unos valores predeterminados en todos los textbox para que no se tenga que empezar de arriba abajo, pues ahora si empiezas poniendo las Revoluciones da error (esto ya no lo veo tan facil)
una casilla de verificacion para anular el mp3, por si a la gente le molesta (creo que es facil) que en el textbox de los KM/h solo me salga el entero y dos decimales por ejemplo 130,20 y no 130.205487478 que queda muy feo y por supuesto ponerle un mensage al salir del programa con agradecimientos a la gente como tu que me ayuda a crear estas cosillas para que otra gente las disfrute totalmente gratis, pues esto lo hago por Hobby y no pa sacar dinero.

Esto que te comente lo voy a intentar hacer el fin de semana por mi cuenta, leyendo los manuales que tengo, a ver si lo consigo, ya te contare.
Si no pues tendre que pedirte ayuda

De verdad Muchas Gracias!!!!
  #8 (permalink)  
Antiguo 27/10/2009, 16:15
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda Novato

Acabo de darme cuenta que calcula mal los KM/h
Me pone que en 1º a 14000mil pilla 627,0506666666
Lo revisare mañana
ahora es tarde y no me da tiempo de mas
Algo habre puesto yo mal

De nuevo gracias por tu ayuda, hasta mañana
  #9 (permalink)  
Antiguo 27/10/2009, 16:36
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Ayuda Novato

Y si no soy yo alguien te ayudará. Hay gente por aquí que controla mucho más.
Solo hay que explicarse bién para que te entiendan porque a veces te vuelves loco para entender una pregunta.

Sigue disfrutando de tu cerebro. Es la mejor droga y previene el altzeimer.

PD: Es posible que te falten unos parentesis
txtKMh.text = ((Val(HScrollRPM.Value) * 60) / (CDbl(txtRDVel.text) / 0.88)) / 1000

Última edición por pkj; 27/10/2009 a las 16:44
  #10 (permalink)  
Antiguo 30/10/2009, 15:20
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda Novato

Hola!
Estos dias anduve muy liado de trabajo y no pude hacer nada, a ver si mañana retomo el tema este.
No se que narices haria mal, pero ahora al volver a compilarlo (se dice a si cuando lo pasas a exe?) me sale bien sin poner el doble parentesis, no se que pudo haber sido?
El caso es que ahora funciona, se ve muy cutrillo y sin acabar pero funciona.
A ver si puedo mañana empezar a darle color.

Hasta mañana!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:33.