Código en Delphi 6, válido para Delphi for win32 y CodeGear RAD Studio (Delphi win32) | ||
Componentes que permitirán conocer/cambiar el estado de las Teclas Lock (Insert, Mayúsculas, Bloqueo desplazamiento, Bloqueo numérico). Los componentes también pueden colocar el texto que deseemos en un StatusBar (o HintStatusBar) dependiendo del estado de cualquiera de esta teclas.
El componente NLokKeys (New Lockkeys) tiene la misma información que LockKey pero con las propiedades de otra forma.
Las propiedades que siguen se corresponden con el componente LockKeys, una vez visto como funciona este componente se deducirá el funcionamiento de NLockKeys por lo que no se explicará ya que basta echarle un vistado para comprender su funcionamiento.
Propiedades :NumLock : Lee/Asigna un el estado a la tecla NumLock (BloqNum).(True/False)
CapLock : Lee/Asigna un el estado a la tecla CapLock (BloqMayús).(True/False)
ScrLock : Lee/Asigna un el estado a la tecla ScrollLock (BloqDespl).(True/False)
InsLock : Lee/Asigna un el estado a la tecla Insert (Insert).(True/False)
Active : Activa/desactiva el componente. A partir de la activación, si se ha seleccionado un StatusBar y si se ha asignado números a la propiedad 'Panels' del componente, en el StatusBar aparecerán los textos (TextOn/TextOff) asignados a los estados de las teclas Lock.(True/False)
(Publicadas - Published)
Interval : Intervalo en milisegundos de comprobación del estado de las teclas Lock por parte del componente. Por defecto es de 250 milisegundos..Eventos :
TextOn : Textos de cada una de las teclas cuando la tecla correspondiente está activada.
NumKey : Texto que aparece cuando está activa la tecla Bloqueo Numérico. (Por defecto 'Num')TextOff : Textos de cada una de las teclas cuando la tecla correspondiente está desactivada.
CapKey : Texto que aparece cuando está activa la tecla Mayúsculas. (Por defecto 'Cap')
InsertKey : Texto que aparece cuando está activa la tecla Insert. (Por defecto 'Ins')
ScrollKey : Texto que aparece cuando está activa la tecla Bloquedo desplazamiento. (Por defecto 'Scr on')
NumKey : Texto que aparece cuando está desactiva la tecla Bloqueo Numérico. (Por defecto vacío)Panels : Números de los distintos 'Panel' del componete StatusBar asociado donde aparecerán los textos anteriores. Si el valor de estos paneles es '-1' entonces no aparecerá el texto correspondiente.
CapKey : Texto que aparece cuando está desactiva la tecla Mayúsculas. (Por defecto vacío)
InsertKey : Texto que aparece cuando está desactiva la tecla Insert. (Por defecto 'Ovr')
ScrollKey : Texto que aparece cuando está desactiva la tecla Bloquedo desplazamiento. (Por defecto 'Scr off')
NumKey : Nº del Panel StatusBar para el texto de la tecla Bloqueo Numérico.StatusBar : Componte StatusBar al que hace referencia la propiedad 'Panels'. En esta barra de estado aparecen los textos de tecla activada/desactivada.
CapKey : Nº del Panel StatusBar para el texto de la tecla Mayúsculas.
InsertKey : Nº del Panel StatusBar para el texto de la tecla Insert.
ScrollKey : Nº del Panel StatusBar para el texto de la tecla Bloqueo Desplazamiento.
OnChange : Se produce cada que que cambia el estado de una de las teclas 'Lock'.
Funcionamiento :
Este componente puede funcionar de varias maneras, podemos querer saber el estado de las teclas Lock sólo en un determidado momento, o asignarlas un estado pero en un momento no determinao a priori, para ello no hace falta Activar el componente (propiedad Active), basta con preguntar por el estado de las teclas, por ejemplo si queremos saber si la Tecla Mayúsculas está activada haremos :
If LockKeys1.CapLock then // Si está en Mayúsculas LockKeys1.CapLock:=False; // Cambiamos a minúsculas
Si por el contrario queremos que aparezca en una barra de estados el estado de las teclas Mayúsculas e insert, deberemos activar el componente:
LockKeys1.Interval:=200; LockKeys1.StatusBar:=StatusBar1; LockKeys1.Panels.CapKey:=1; LockKeys1.Panels.InsertKey:=2; LockKeys1.TextOn.CapKey:='Mayúsculas'; LockKeys1.TextOn.InsertKey:='Inserción'; LockKeys1.TextOff.CapKey:='Minúsculas'; LockKeys1.TextOff.InsertKey:='Sobreescritura'; LockKeys1.Active:=True;