# Programar en visual basic



## treblo (Dic 12, 2011)

que tal estuve buscando y no vi temas relacionados, si estoy equivocado les pido que me pongan el link asi puedo ver de que se trata, de lo contrario pido ayuda jajaja

Bueno paso a explicar estoy queriendo programar en VB 6.0 un programa para pasar valores de temperatura a distintas escalas, por ejemplo de celsius a fahrenheit.
De la fomra que lo quiero hacer es con dos combobox en donde pueda elegir en cada uno tanto grados celsius como fahrenheit, entonces por ejemplo en el primer combobox1 ponemos celsius y en el segundo fahrenheit y debajo de esto hay dos textbox donde en textbox1 ponemos el valor al que lo queremos cambiar de escala y en el segundo nos aparece el resultado despues de haber apretado un boton "calcular".
Despues de buscar en el foro y leyendo llegue a programar un par de lineas pero no andan del todo bien, las lines son :

Private Sub cmdboton_Click()
If Combo1.Text = Celsius & Combo2.Text = Fahrenheit Then
Text2.Text = 32 + 1.8 * Text1.Text
    End If
ahora si ejecuto eso, con solo poner celsius en el primer combobox y despues apreto calcular ya me calcula el valor, osea el error esta en que no elegi a la escala en la que quiero cambiar el valor que ya lo calcula.
Espero haber sido claro ajaja y espero que me puedan tirar una mano en algo!...bueno desde ya muchas gracias y si algo no se entiende pregunte, y si hay algo similar en el foro avisen no me reten  

Saludos.


----------



## christian elric (Ene 3, 2012)

Bueno a lo que entendi ya tienes la rutina pero quieres que se cumpla la condicion, primero utiliza AND en lugar de & te va a dar mejores resultados y si no quieres que un combo se quede sin seleccionar utiliza

ComboBox1.SelectedIndex = 1 y siempre va a estar seleccionado el primer item puedes cambiarle el valor 2,3,4,etc segun el que quieras tener seleccionado, me imagino que en los 2 combobox vas a tener Celsius y Farenheit en ese orden asi que puedes ponerlo asi:

Combo1.SelectedIndex = 1 
Combo2.SelectedIndex = 2

asi aunque se presione el boton directamente ya no tendras problema de que no se haya seleccionado las escalas a convertir.


Bueno eso es lo que entendi que querias jeje, sino es eso solo dilo y trata de ser un poco mas claro XD saludos¡¡


----------



## Kalamarus (Ene 3, 2012)

Debes rellenar en las propiedades de los combo el apartado list con las etiquetas que desees. En el mismo apartado de propiedades, hay un apartado que se llama ItemData. Una vez hayas rellenado el apartado list, si vas a ItemData, te encontrarás un desplegable con tantos 0 como items hayas añadido a la lista. si los modificas por 0,1,2,....,n solo tendrás que decirle algo así:

Private Sub Command1_Click()
If Combo1.ListIndex = 0 And Combo2.ListIndex = 1 Then
Text2.Text = 32 + 1.8 * Text1.Text
End If
End Sub

A lo que yo haria seria poner el mismo orden en la lista de cada combo, y asignarles el mismo numero en el ItemData. Así, solo comparando el numero del ItemData, podria...por ejemplo con una sentencia tipo Case conseguir hacer todas las conversiones posibles...


----------



## D@rkbytes (Ene 4, 2012)

Saludos.
Pués Treblo no se ha aparecido en su tema desde hace 3 semanas. 
Pero aqui les dejo este sencillo programa para ese tipo de conversión.
Como se requeria, esta escrito en VB6
No use ComboBox, use OptionButton, que es mas sencillo de implementar.
Hasta luego y suerte.


----------

