Autor
|
Tema: Cambiar estado al mover el VScrollBar (Leído 5,949 veces)
|
Chuxxx
|
Hola chicos, resulta que tengo que hacer un sistema que administre 3 bombas de agua, y en tal tanque hay 2 medidores, y al medidor lo hice con un VScrollBar, asi va quedando mi proyecto: Y tengo que hacer para que cuando suba el scroll, los dos segundos cuadraditos se pongan en verde, y cuando baje se ponga solo el de abajo, o ninguno si esta a 0, y a la medida que esta el cuadradito, mi pregunta es, como hago para que cuando mueva el scroll cambie el label de color? Gracias por la ayuda...
|
|
« Última modificación: 16 Mayo 2010, 01:45 am por Chuxxx »
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Mira esto: Dim miNivel As Integer Private Sub Form_Load() miNivel = SCRLL.Value End Sub Private Sub SCRLL_Change() If SCRLL.Value > miNivel Then MsgBox "estoy subiendo el nivel" Else MsgBox "estoy bajando el nivel" End If miNivel = SCRLL.Value End Sub
Con esto de base solo tendrias que adaptarlo a tu proyecto para que los shapes cambien de color... Espero que te sirva... Salu2!
|
|
|
En línea
|
|
|
|
Chuxxx
|
Graciaas.. Anda perfecto.. Pero faltó una cosa... Que cuando el scrollbar este a la mitad, se prenda en verde solo la de abajo, y la de arriba quede en rojo, como diciendo que el agua llega al primer medidor... Se podrá? (Como dice mi profe, en la programacion se puede TODO, lo que vos QUIERAS xD asi que si, se tiene que poder xD)
|
|
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
claro Seria así: Dim miNivel As Integer Private Sub Form_Load() miNivel = SCRLL.Value End Sub If SCRLL.Value = SCRLL.Max / 2 Then MsgBox "estoy en el medio" ElseIf SCRLL.Value > miNivel Then MsgBox "estoy subiendo el nivel" Else MsgBox "estoy bajando el nivel" End If miNivel = SCRLL.Value End Sub
Salu2!
|
|
|
En línea
|
|
|
|
Chuxxx
|
No sale, sale solo lleno o vacio, el del medio no, será que deberá ser muy exacta la posicion para que quede en el medio? Private Sub VScroll2_Change() If VScroll2.Value > MedidorNivel3 Then Label5.BackColor = vbRed Label6.BackColor = vbRed MsgBox "El medidor del nivel 3 detecta baja cantidad de agua" ElseIf VScroll2.Value < MedidorNivel3 Then Label5.BackColor = vbGreen Label6.BackColor = vbGreen MsgBox "El medidor del nivel 3 detecta alta cantidad de agua" ElseIf VScroll2.Value = VScroll2.Max / 2 Then Label5.BackColor = vbRed Label6.BackColor = vbGreen MsgBox "estoy en el medio" End If MedidorNivel3 = VScroll2.Value End Sub
|
|
« Última modificación: 16 Mayo 2010, 20:05 pm por Chuxxx »
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
claro Seria así: Dim miNivel As Integer Private Sub Form_Load() miNivel = SCRLL.Value End Sub Private Sub VScroll2_Change() If SCRLL.Value = SCRLL.Max / 2 Then MsgBox "estoy en el medio" ElseIf SCRLL.Value > miNivel Then MsgBox "estoy subiendo el nivel" Else MsgBox "estoy bajando el nivel" End If miNivel = SCRLL.Value End Sub
Salu2! Tienes que hacerlo en el orden que te puse yo, porque sino, detecta antes que has aumentado el value y sales del IF antes de que compruebe que esta en la mitad, ¿entiendes? Prueba con esto: Private Sub VScroll2_Change() If VScroll2.Value = VScroll2.Max / 2 Then Label5.BackColor = vbRed Label6.BackColor = vbGreen MsgBox "estoy en el medio" ElseIf VScroll2.Value > MedidorNivel3 Then Label5.BackColor = vbRed Label6.BackColor = vbRed MsgBox "El medidor del nivel 3 detecta baja cantidad de agua" Else Label5.BackColor = vbRed Label6.BackColor = vbRed MsgBox "El medidor del nivel 3 detecta baja cantidad de agua" End If MedidorNivel3 = VScroll2.Value End Sub
Y si, es exacto, es exactamente la mitad del scroll... Si el maximo del Scroll no es par, la mitad no te dara exacta, entonces pones el doble del valor, asi la mitad del nuevo Max seria el antiguo Max (no se si me explique...) Espero haberte ayudado! Salu2!
|
|
« Última modificación: 16 Mayo 2010, 21:30 pm por *PsYkE1* »
|
En línea
|
|
|
|
Chuxxx
|
EDIT: Encontre ya como es...
|
|
« Última modificación: 16 Mayo 2010, 22:51 pm por Chuxxx »
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
uhh esta dificil encontrarle.... Pero funciona, ¿verdad? Investiga un poco que nadie mejor que tu va ha saber lo que quieres... Respecto a lo del And en el If seria asi: If Date = "16/05/2010" And Time = "22:48:50" Then Msgbox "*PsYkE1* no te va ha hacer los deberes todos los dias..."
Salu2!
|
|
|
En línea
|
|
|
|
Chuxxx
|
Jajaja justo habia encontrado como... Sisi funciona!! Gracias por la ayuda, ya quiero terminar el curso y ayudar a otros noobs, pero bueno, todo a su tiempo ^^ Si encuentro algo mas vuelvo a molestar por aca ^^ Gracias If Date = "16/05/2010" And Time = "22:48:50" Then Msgbox "*PsYkE1* no te va ha hacer los deberes todos los dias..." Bueno ese code! xDD
|
|
|
En línea
|
|
|
|
Chuxxx
|
Hola *PsYkE1* otra vez te vuelvo a molestar, con esto que no entiendo :S Y me fije en internet y no dá, mira esta imagen... Ese menu, me salta "a veces", para el label, para dejar que salte, tuve que borrarlo y poner un label nuevo, y pude hacer bien el codigo, y ya he probado hacer uno de cada uno en ese menu y me sale este mensaje: PD: Mi VB6 es medio malo :S Sepan disculparlo xDD
|
|
« Última modificación: 17 Mayo 2010, 18:10 pm por Chuxxx »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Cambiar estado boton c#
.NET (C#, VB.NET, ASP)
|
jcruzrg
|
2
|
3,898
|
30 Agosto 2013, 19:07 pm
por jcruzrg
|
|
|
Cambiar el estado de una columna usando un checkbox
.NET (C#, VB.NET, ASP)
|
nolasco281
|
2
|
2,363
|
6 Junio 2015, 02:39 am
por nolasco281
|
|
|
Cambiar de estado de los registros
Java
|
carlostotu
|
3
|
2,509
|
21 Julio 2019, 11:42 am
por Beginner Web
|
|