![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
No entiendo bien por qué la discrepancia en el funcionamiento. A mi me funciona como dice dec. Ahora, según la documentación, la comparación tendría que hacerse así:
Por otra parte, si lo que se desea es mostrar el estado de estas teclas en una barra de estado, yo me olvidaría del OnKeyDown y pondría un Timer que se ejecute cada 10 ms en donde haría la comprobación. De esta manera, sólo tienes que poner el código en un lugar y además el estado se reflejará correctamente aun cuando el estado de la tecla cambie por razones distintas a oprimir la tecla (al menos a mi me pasa cada tanto que la tecla NumLock se apaga luego de correr alguna aplicación). // Saludos |
|
#2
|
||||
|
||||
|
Esa sentencia merece un aplauso y una reverencia..... esto hace que el procedimiento sea unico y no haya que introducirle parametros de tecla. Por lo tanto el procedimiento quedaria asi...
Código:
procedure TMain.KeyState(); begin If GetKeyState(VK_NUMLOCK) and 1 = 1 Then StatusBar.Panels[2].Style:= psText else StatusBar.Panels[2].Style:= psOwnerDraw; If GetKeyState(VK_CAPITAL) and 1 = 1 Then StatusBar.Panels[3].Style:= psText else StatusBar.Panels[3].Style:= psOwnerDraw; If GetKeyState(VK_SCROLL) and 1 = 1 Then StatusBar.Panels[4].Style:= psText else StatusBar.Panels[4].Style:= psOwnerDraw; end; Saludos y Gracias
__________________
La paciencia es un árbol de raíz amarga pero de frutos muy dulces. Sr.Scorpion |
|
#3
|
||||
|
||||
|
Cita:
¿¿¿¡¡¡¡¡10 milisegundos no se te hace inmediato!!!!????? Simplemente pon la propiedad Interval del timer en 10 (incluso 50 0 100 debe ser suficiente). Te aseguro que el efecto es inmediato. // Saludos |
|
#4
|
||||
|
||||
|
¿Has pensado que sucede si el usuario activa otra aplicación y estando en ella cambia el estado de alguna de estas teclas? ¿Crees que tu aplicación lo detectará? Haz la prueba.
// Saludos |
|
#5
|
||||
|
||||
|
Primero disculpa.... pense que habias dicho 10 segundos cuando en realidad eran 10 milisegundos. Bueno pensandolo bien no esta nada mal eso.... en esa parte tiene razon....
Ahora pregunto yo.... no seria mucho que a cada 10 mseg. se este ejecutando una accion, traiga esto como consecuencia algun error en la aplicacion o que esta intervenga en la ejecucion de otra o algo por el estilo ??? Saludos
__________________
La paciencia es un árbol de raíz amarga pero de frutos muy dulces. Sr.Scorpion |
|
#6
|
||||
|
||||
|
Cita:
// Saludos |
|
#7
|
||||
|
||||
|
bueno pues entonces .... caso resuelto. Se queda el Timer que es mas abarcador que el OnKeyDown. Mil Gracias Roman por tus consejos.
Saludos
__________________
La paciencia es un árbol de raíz amarga pero de frutos muy dulces. Sr.Scorpion |
|
#8
|
||||
|
||||
|
Saludos
dec, probando tu fabuloso editor encontre lo que comenta roman Cita:
![]()
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|