PDA

Ver la Versión Completa : Problema con el GetasyncKeyState


Milworm99
14-11-2017, 18:25:53
Hola gente de la comunidad delphi, tengo un problema con este código

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (GetasyncKeyState($70)<0) then // Tecla F1 //
begin
Label1.Caption:= 'Activado';
end
else
begin
Label1.Caption:= 'Desactivado';
end
end;
end.

Lo que quiero es que al presionar por primera ves la tecla F1, me salga en el label 'Activado', luego al presionar la tecla F1 por segunda ves me salga el mensaje en el mismo label 'Desactivado', y asi sucesivamente al presionar dicha tecla.

Yo e estado haciéndolo así pero no funciona

Espero que me ayuden, gracias por adelantado :)

Casimiro Notevi
14-11-2017, 21:54:11
No creo que sea necesario un timer, supongo que podrás hacerlo en la pulsación de la propia tecla.

Milworm99
14-11-2017, 22:07:19
No creo que sea necesario un timer, supongo que podrás hacerlo en la pulsación de la propia tecla.

Como lo puedo hacer ?

orodriguezca
15-11-2017, 15:24:05
Como lo puedo hacer ?

Creo que la forma más sencilla es mediante un TAction:

- Colocas un componente de tipo TActionList en el formulario.
- Al componente ActionList le adicionas una acción (Action1, por ejemplo).
- A esa acción le asignas como "ShortCut" la tecla F1 (propiedad ShortCut de la acción).
- En el evento Execute de la acción escribes un código similar a esto:


procedure TForm1.Action1Execute(Sender: TObject);
begin
if Label1.Caption = 'Activado' then
Label1.Caption := 'Desactivado'
else
Label1.Caption := 'Activado';
end;