Ayuda con visual basic

http://img132.imageshack.us/img132/2921/dibujobd.jpg
Necesito que ese formulario funcione... Consiste en un label con el tipo de unidades (ej: longitud), luego el combobox1 con 6 unidades de dicho tipo (ej: metros, centímetros, decímetros, etc), luego un textbox1 donde se ingresara la cantidad referente a la unidad del combobox1 (ej: 10(metros), 5 (centímetros)), luego un textbox2 donde debe aparecer la respuesta y finalmente un combobox2 que es la unidad de medida en la que aparecerá la respuesta (las mismas del primer combo)
Y en lo último un commandbutton1 para que al darle click convierta las unidades.
En la figura ej: kilómetros --- 10 ---- "valor que debe aparecer (1000)" --- metros
                        Peso --------- 10-----"valor que debe aparecer (1000) ------gramos
Algo así pero que funcione con cualquier par de medidas que se seleccionen y que se ejecute al clickear "convertir" (commandbutton)
Espero haberme explicado bien... Si es así podrías ayudarme con el código :

1 respuesta

Respuesta
1
Solo tienes que hacer un array tabla con los distintos factores de conversión.
Haz un array de una dimension para cada unidad a convertir. Por ejemplo supongamos que tienes Km, m y cm ( ocuparían las posiciones 1, 2 y 3 respectivamente) y lo pones todo en la menor unidad:
dim Longitud(1 to3) as integer
longitud(1)=100000 ' 1km=100.000 cm
longitud(2)=100 ' 1m=100 cm
longitud(3)=1 ' 1 cm=1cm
Procura que el orden de las combos tenga el mismo orden que el array y multiplicas por el primer valor y divides por el 2º para tener el resultado. Por ejemplo para tu primer cuadro:
10km=
10km*longitud(3)=10*100.000 cm=1.000.000cm
y ahora dividimos para pasarlo a metros.
1.000.000cm/longitud(2)=1.000.000/100=10.000m
En codigo seria:
text2.text=val(text1.text)*longitud(combo1.listindex)/combo2(listindex)
text2.text=format(text2.text,"##.##,00") ' para ponerlo bonito.
Si no te ha quedado claro dímelo.
Pues... ni siquiera se que es un array ... el profesor dijo:
Utilizar "select case" para convertir lo leído en text1 a una unidad particular.
Utilizar "select case" para convertir a la unidad seleccionada en el caso 2 (combobox2)
Y medio recuerdo que en el primero tomo como referencia metros... le dio valor "x" a metros y "y" a la unidad en el combobox2 ... luego escribió algo así como:
case ..... "centimetros"
x=y*10
...
...
...
end select
Luego coloco algo parecido pero invirtió los signos:
Me parece que era
z=y/10
En el caso de los cms.
Pero la verdad solo llevo 3 semanas (2h por semana) en esto del visual basic y no sé mucho
No sé si me explique bien... pero el caso es que el prof. dijo que es "más fácil" usando select case y dijo también eso de tomar una unidad especifica
Gracias:
Ojala puedas responderme antes de 1 día (mañana a esta hora tengo informática)
Gracias por la ayuda aunque ya conseguí que un compañero me prestara los códigos :D
Era este:
Private Sub Command1_Click()
x = Val(Text1.Text)
Select Case Combo1.Text
    Case "metro"
        y = x
    Case "centimetro"
        y = x / 100
    Case "milimetro"
        y = x / 1000
    Case "kilometro"
        y = x * 1000
    Case "hectometro"
        y = x * 100
    Case "milla"
        y = x * 1620
End Select
Select Case Combo2.Text
    Case "metro"
        z = y
    Case "centimetro"
        z = y * 100
    Case "milimetro"
        z = y * 1000
    Case "kilometro"
        z = y / 1000
    Case "hectometro"
        z = y / 100
    Case "milla"
        z = y / 1620
End Select
Text2.Text = z
End Sub
Private Sub Command2_Click()
x = Val(Text3.Text)
Select Case Combo3.Text
    Case "litro"
        y = x
    Case "galon"
        y = x * 5
    Case "barril"
        y = x * 100
    Case "metros cubicos"
        y = x * 1000
    Case "tang"
        y = x * 20
    Case "doe"
        y = x * 1.803
End Select
Select Case Combo4.Text
    Case "litro"
        z = y
    Case "galon"
        z = y / 5
    Case "barril"
        z = y / 100
    Case "metros cubicos"
        z = y / 1000
    Case "tang"
        z = y / 20
    Case "doe"
        z = y / 1.803
End Select
Text4.Text = z
End Sub
Private Sub Command3_Click()
x = Val(Text5.Text)
Select Case Combo5.Text
    Case "gramo"
        y = x
    Case "kilogramo"
        y = x / 1000
    Case "tonelada"
        y = x / 907184.74
    Case "tonnes"
        y = x / 1000000
    Case "monme"
        y = x / 3.75
    Case "gwan"
        y = x / 3750
 End Select
Select Case Combo6.Text
    Case "gramo"
        z = y
    Case "kilogramo"
        z = y * 1000
    Case "tonelada"
        z = y * 907184.74
    Case "tonnes"
        z = y * 1000000
    Case "monme"
        z = y * 3.75
    Case "gwan"
        z = y * 3750
 End Select
Text6.Text = z
End Sub
Private Sub Command4_Click()
x = Val(Text7.Text)
Select Case Combo7.Text
    Case "hora"
        y = x
    Case "segundo"
        y = x / 3600
    Case "minuto"
        y = x / 60
    Case "dia"
        y = x * 24
    Case "semana"
        y = x * 168
    Case "mes"
        y = x * 720
 End Select
Select Case Combo8.Text
    Case "hora"
        z = y
    Case "segundo"
        z = y * 3600
    Case "minuto"
        z = y * 60
    Case "dia"
        z = y / 24
    Case "semana"
        z = y / 168
    Case "mes"
        z = y / 720
 End Select
Text8.Text = z
End Sub
5/5
GRACIAS aunque me diste una respuesta en términos muy técnicos, aunque eso no le quita lo excelente !
http://4.bp.blogspot.com/_Ck9BSiqUI68/Sb19heJTfHI/AAAAAAAAAmw/7WHg7XeOzAQ/s400/gracias.gif

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas