Hola,
Alguien me podría ayudar a hacer un semaforo en VB.
Con 3 shape, que cuando apreté un botón "Cambiar Luz" vaya salteando de shape.
Desde ya, agradezco la ayuda posible.
Saludos.
| |||
Semáforo Hola, Alguien me podría ayudar a hacer un semaforo en VB. Con 3 shape, que cuando apreté un botón "Cambiar Luz" vaya salteando de shape. Desde ya, agradezco la ayuda posible. Saludos. |
| |||
Hola vbx3m, Gracias por tu respuesta. Lo que tengo echo es muy poco, dado a que no consigo en ningún lado la información correspondiente, de cómo hacerlo. Shape1.Visible = False Shape2.Visible = False Se me queda mostrando Verde y a apretar Cambiar de Luz sigue en verde. Me parece que ¿tengo que hacer un If o un Do?. Saludos. |
| |||
Hola vbx3m, Gracias por tu respuesta. No el timer aun no me lo enseñaron, quiero que primero, al ejecutar el programa me aparezcan los 3 shape prendidos, luego que apreté Cambiar de Color y prenda verde y apague los otros, luego Cambiar de Color y prenda amarillo y apage verde y rojo y asi con el rojo. ¿Es con un IF? ¿Es muy difícil? Saludos. Última edición por mmontanez; 02/06/2006 a las 07:39 |
| ||||
Pues para eso podria utilizar un contador sencillo... Cuando le des click al boton q aumente el contador y en vez de hacer la condicion si esta visible o no un shape lo comparas con el contador... Me entiendes??
__________________ ホルヘ・ラファエル・マルティネス・レオン |
| |||
La verdad no, ni idea como hacerlo, ¿Como puedo decirle al botón que elija verde, azul o rojo según corresponda? En el IF, lo que quiero es que establezca que si uno esta prendido los demás no tienen que estar. Eso esta bien el código anterior. Faltan claro los 2 IF mas. Saludos. |
| ||||
Pues como veo que quieres trabajar de la manera en que solo un shape este visible por vez, en el momento de iniciar (cargar) la aplicacion le indicas cual quieres que este visible.. en este caso seria el shape1 (rojo)... En el evento click del boton compararias con el IF cual estaria visible... Si el shape1(rojo) esta visible entonces el shape1(rojo) pasaria a estar invisible y el Shape2(amarillo) pasaria a estar visible y el shape3(verde) seguiria invisible sino si el que esta visible es el shape2(amarillo) entonces el shape2(amarillo) pasaria a estar invisible y el shape3(verde) a visible sino si el shape3(verde) ... etc.. etc...
__________________ ホルヘ・ラファエル・マルティネス・レオン |
| |||
Pues ya lo tienes Esta sencillo, no te compliques, tienes la logica, ahora simplemente hazlo. En tiempo de diseño deja el Verde encendido y los otros apagados, luego... En el evento click del boton escribe el codigo que tienes en mente: Cita: Es importante que utilizes Else If, en lugar de If porque si no se te cicla el programa.Inicio Evento Click if Shape_Verde.Visible = True then '<-- si esta el Verde prendido Shape_Verde.Visible = False '<----- lo apagas Shape_Amarillo.Visible = True '<--- prendes el amarillo else if Shape_Amarillo.visible = True then '<-- si esta el Amarillo prendido Shape_Amarillo.Visible = False '<----- lo apagas Shape_Rojo.Visible = True '<--- prendes el Rojo else if Shape_Rojo.visible = True then ' <-- si esta el Rojo prendido Shape_Rojo.visible = false '<--- lo apagas Shape_Verde.VIsible = True '<--- prendes el Verde end if Fin Evento Click Es lo que te entendi, espero te sirva, el codigo adecualo al Lenguaje de Visual Basic, me parece que es algo similar. |
| |||
Espero te sirva Dim mueve Private Sub Command1_Click() mueve = mueve + 1: If mueve > 3 Then mueve = 1 If mueve = 1 Then Shape_Verde.BackColor = vbGreen Else Shape_Verde.BackColor = vbWhite If mueve = 2 Then Shape_amarillo.BackColor = vbYellow Else Shape_amarillo.BackColor = vbWhite If mueve = 3 Then Shape_rojo.BackColor = vbRed Else Shape_rojo.BackColor = vbWhite End Sub
__________________ Jerico |
| |||
P.D. No olvides cambiar el atributo de BackStyle en los Shapes a 1 - Opaco para que coloree Espero te sirva Dim mueve Private Sub Command1_Click() mueve = mueve + 1: If mueve > 3 Then mueve = 1 If mueve = 1 Then Shape_Verde.BackColor = vbGreen Else Shape_Verde.BackColor = vbWhite If mueve = 2 Then Shape_amarillo.BackColor = vbYellow Else Shape_amarillo.BackColor = vbWhite If mueve = 3 Then Shape_rojo.BackColor = vbRed Else Shape_rojo.BackColor = vbWhite End Sub
__________________ Jerico |
| |||
Bueno esta seria una opcion sin tocar el visible, o sea, no se dejan de ver nunca HE utilizado el QBCOLOR porque no tenia ganas de buscar el amarillo en RGB ;) ![]() ![]()
Código:
Dim col As Integer ' Definimos la variable Private Sub Command1_Click() If col = 1 Then Shape1.BackColor = RGB(255, 0, 0) ' Ponemos el SHAPE1 en rojo Shape3.BackColor = RGB(0, 0, 0) ' Ponemos el SHAPE3 en negro col = 2 ' Ponemos la variable a 2 Exit Sub End If If col = 2 Then Shape2.BackColor = QBColor(14) 'Ponemos el SHAPE2 en amarillo Shape1.BackColor = RGB(0, 0, 0) 'Ponemos el SHAPE1 en negro col = 3 'Ponemos la variable a 3 Exit Sub End If If col = 3 Then Shape3.BackColor = RGB(0, 255, 0) 'Ponemos el SHAPE3 en rojo Shape2.BackColor = RGB(0, 0, 0) 'Ponemos le SHAPE2 en negro col = 1 'Ponemos la variable a 1 para que vuelva a empezart Refresh Exit Sub End If End Sub Private Sub Form_Load() Command1.caption = "Cambiar luz" 'Da el nombre al boton Form1.caption = "Topskil ;)" 'DA el nombre al formulario 'Pone los shapes negros -------------------------------- Shape1.BackColor = RGB(0, 0, 0) Shape2.BackColor = RGB(0, 0, 0) Shape3.BackColor = RGB(0, 0, 0) '------------------------------------------------------- col = 1 End Sub Última edición por topskil; 26/06/2006 a las 13:15 |