Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Mayusculas (https://www.clubdelphi.com/foros/showthread.php?t=20757)

merlin 25-04-2005 11:23:34

Mayusculas
 
Hola a tod@s!

Bueno mi problemas es el siguiente quiero que cuando arranque el programa se activen las mayusculas y que cunado cerremos la aplicación se quiten como puedo hacer eso, gracias espero vuestras respuestas lo antes posible.

Un saludo.

Neftali [Germán.Estévez] 25-04-2005 11:46:14

Se puede hacer utilizando la api keybd_event y la tecla virtual VK_CAPITAL.

Coloca el siguiente código tanto para activarla como para desactivarla:
Código Delphi [-]
      keybd_event( VK_CAPITAL, MapVirtualkey( VK_CAPITAL, 0 ),
                   KEYEVENTF_EXTENDEDKEY, 0);
      keybd_event( VK_CAPITAL, MapVirtualkey( VK_CAPITAL, 0 ),
                   KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);

Si deseas saber si está activada o desactivada en un momento dado puedes utilizar ésto:

Código Delphi [-]
   if not Odd(GetAsyncKeyState( VK_CAPITAL )) then begin
     MessageDlg('Activa', mtInformation, [mbOK], 0);
   end
   else begin
     MessageDlg('Desacivada', mtInformation, [mbOK], 0);
   end;

merlin 25-04-2005 12:48:11

Res mayusculas
 
Hola Neftali.

La parte de activar las mayusculas funciona muy bien pero esta otra parte de codigo:

Código:

if not Odd(GetAsyncKeyState( VK_CAPITAL )) then begin
    MessageDlg('Activa', mtInformation, [mbOK], 0);
  end
  else begin
    MessageDlg('Desacivada', mtInformation, [mbOK], 0);
  end;

Solo entra en la condicion en la parte de activa tanto si estan activadas las mayusculas como si no. Sabes xq?

Neftali [Germán.Estévez] 25-04-2005 13:03:48

Cierto, en éste caso tal vez me he complicado la vida, prueba con ésto:
Código Delphi [-]
   if Odd(GetKeyState( VK_CAPITAL )) then begin
     MessageDlg('Activa', mtInformation, [mbOK], 0);
   end
   else begin
     MessageDlg('Desacivada', mtInformation, [mbOK], 0);
   end;


La franja horaria es GMT +2. Ahora son las 15:07:52.

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