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:
(http://r.i.elhacker.net/cache?url=http://img193.imageshack.us/img193/7025/administraciondebombas.jpg) (http://img193.imageshack.us/i/administraciondebombas.jpg/)
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... ;)
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! :)
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)
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! ;D
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
Cita de: *PsYkE1* en 16 Mayo 2010, 18:36 PM
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! ;D
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?:huh:
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 :P (no se si me explique...)
Espero haberte ayudado! ;)
Salu2! ;D
EDIT: Encontre ya como es... :D
Cita de: Chuxxx en 16 Mayo 2010, 22:31 PM
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..."
:xD
Salu2! :)
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
CitarIf 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
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...
(http://r.i.elhacker.net/cache?url=http://img257.imageshack.us/img257/1664/97236064.jpg) (http://img257.imageshack.us/i/97236064.jpg/)
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:
(http://r.i.elhacker.net/cache?url=http://img338.imageshack.us/img338/7121/43508958.jpg) (http://img338.imageshack.us/i/43508958.jpg/)
PD: Mi VB6 es medio malo :S Sepan disculparlo xDD
mmmm
explicame que es lo que pasa exactamente y que no entiendes que no me aclaro... :-\
EDITO:
Lo que kieres es cambiar el color de fondo del Label Status, verdad?¿
Cambiale en nombre por Estado y me cuentas... :P
Salu2!
Que yo le quiero cambiar el color de fondo a ese label, pero "a veces" me salta ese cartel para completar, que dice:
Count
Item
Lbound
UBound
No?
Y selecciono uno de esos (ya probe con todos) y me salta ese error, y no me deja cambiarle el color, porque si pongo directamente label.backcolor = vbred
me salta: "El argumento no es opcional"
Pero lo mas raro es que a veces, por que a veces pongo
Status.backcolor = vbGreen
Y me anda perfecto...
Se entiende? xDDD
EDIT: Cambie el nombre a ESTADO y me sigue saltando eso...
Pues siento decirte que no se de que se trata amigo... :(
Salu2!
No se si sera esto pero cuando tienes una matriz de objetos (objetos con el mismo nombre pero con el index diferente) tienes que poner NombreDelObjeto(Index).Propiedad
Ejemplo: Label(2).backcolor = vbRed
O con lo de item y eso que dices
NombreDelObjeto.Item(index).propiedad
Ejemplo:Label.Item(2).backcolor = vbRed
No se si es a lo que te refieres
Cierto, no se me habia ocurrido... :P ... Vaya ciego que estoy... :laugh:
Pues claro que es eso!! ( gracias Maik33 ) ;)
Lo que pasa Chuxxx es que has hecho una matriz de controles...
Una matriz de controles es un nombre común que se le asigna a varios objetos pero con distintos Index para poder diferenciarlos...
Investiga un poco sobre las matrizes, son muy útiles a la hora de trabajar con varios objetos del mismo tipo...
En tu caso lo que tienes que hacer es mirar la propiedad Index del Label que quieres cambiar el color de fondo, seria asi:
Status(0).BackColor = vbBlack ' El 0 lo sustituyes por el Index de tu Label
Salu2! :)
mmm porque esta con el mismo nombre? Bueno cuando despues a la tarde que tenga un tiempito veo el programita a ver si es eso...
Saludos y gracias Maik33! :D
Y a vos tambien *PsYkE1* xD
Siii eso era.. Ahora anda perfecto! Gracias por la ayuda! :D