PDA

Ver la Versión Completa : Caps Locks (bloq mayús)


cmgenny
27-05-2003, 08:16:51
Holas

Gracias a todos por sus colaboraciones.

mi pregunta es sencilla para ustedes pero para mi es todo un algoritmo matematio. Como activo el cap lock en mi aplicacion en run time, esto lo hago para poder controlar que todo lo que se escriba sea en mayusculas. Por ahora lo que hago es cambiar la propiedad "case" de los Tedit pero cuando son componentes tipo memo o el BdGrid los cuales no tienen esa propiedad. Y me gustaria que en todos se escriba igual mayusculas.

Muchisimas gracias y bey bey

marcoszorrilla
27-05-2003, 09:02:55
Prueba con estas funciones, pero que pasa si el usuario desconecta la tecla.

Yo más bien interceptaría las entradas del teclado y las convertiría a mayúsculas.

Comment savoir si la touche Caps Lock est active

function IsCapsLockOn : boolean;
begin
Result := 0 <> (GetKeyState(VK_CAPITAL) and $01);
end;

procedure TForm1.Button1Click(Sender: TObject);

var

keys: TKeyboardState;


begin

{1 = on, 0 = off}

GetKeyboardState( keys );

keys[VK_NUMLOCK] := 1; {Num Lock}

keys[VK_CAPITAL] := 1; {Caps Lock}

keys[VK_SCROLL] := 1; {Scroll Lock}

SetKeyboardState( keys );

end;

Un Saludo.

andres1569
27-05-2003, 19:25:39
Hola:

MarcosZorrilla escribió:


... pero que pasa si el usuario desconecta la tecla.

Yo más bien interceptaría las entradas del teclado y las convertiría a mayúsculas.


Pues sí, como te comentan, creo que lo mejor es controlar esas pulsaciones. Todos esos componentes que comentas tienen un evento OnKeyPress que puedes interceptar (ya sabes, enlazas dicho evento en todos los componentes al mismo procedimiento):


procedure FMainEdit1OnKeyPress (Sender: TObject; var Key: Char);
begin
if ForzarMayusculas then Key := UpCase(Key);
end;


Hasta luego