Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Caps Locks (bloq mayús) (https://www.clubdelphi.com/foros/showthread.php?t=848)

cmgenny 27-05-2003 07:16:51

Caps Locks (bloq mayús)
 
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 08: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 18:25:39

Hola:

MarcosZorrilla escribió:

Cita:

... 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):

Código:

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

Hasta luego


La franja horaria es GMT +2. Ahora son las 17:10:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi