Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Hotkeys en Delphi (https://www.clubdelphi.com/foros/showthread.php?t=81881)

miguelnoda 29-12-2012 02:16:59

Hotkeys en Delphi
 
Hola, buenas a todos, mi nombre es Miguel. Mi problema es este:

He creado un Autoclick para un juego pero no tengo ni idea de como agregarle ''hotkeys'', osea, que se inicie con ''F2'' y se pare con ''F3'' por ejemplo.
He de decir que no se nada de programación, he hecho algunas cosas simples en Visual Basic pero siempre con la ayuda de guías en internet, si me pueden ayudar sería de gran utilidad.

El proyecto consta de un ''timer'', una caja de texto para poner los intervalos y dos ''buttons'', uno para parar y otro para iniciar, ahi es donde me gustaría agregarle unos ''hotkeys'' para poder iniciar y parar el Autoclick pulsando ''x'' tecla.

El code es este:

Código:

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
        Timer1.Interval :=STRToint (Edit1.Text);
        Timer1.Enabled := True ;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Timer1.Enabled :=False;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0 );
  Mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.

Muchas gracias.

oesqueda 29-12-2012 02:26:07

Hola, es simple.
  1. Activa la propiedad KeyPreview en el Form
  2. Programa el evento OnKeyUp

Te paso esta liga para que veas las teclas y sus valores http://delphi.about.com/od/objectpascalide/l/blvkc.htm.

Te dejo la tarea de determinar como usarlas, si se te atora, pues aqui esta el foro :)

miguelnoda 29-12-2012 02:33:56

Hola, gracias por ayudarme amigo.

Aver, ya active la propiedad KeyPreview en el Form Pero no tengo ni idea de como programar el evento OnKeyUp, si me puedes poner un ejemplo con el code sería de gran utilidad.
Por cierto miré la página que pusiste y las ''hotkeys'' que usaré son estas: VK_F9 y VK_F10 y tampoco tengo idea de como poner eso en el code.
Siento mucho mi ignorancia con esto pero es que no tengo ni idea. De nuevo muchísimas gracias por la ayuda.

ecfisa 29-12-2012 03:50:13

Hola Miguel.

Un ejemplo basado en el código de tu primer mensaje:
Código Delphi [-]
...
implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  KeyPreview    := True;  // el form recibe evento teclado antes que el control activo
  Timer1.Enabled:= False
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  // codigo a ejecutar OnTimer
end;

procedure TForm1.btnIniciarClick(Sender: TObject);
begin
  Timer1.Interval:= StrToInt(EditIntervalo.Text);
  Timer1.Enabled := True
end;

procedure TForm1.btnPararClick(Sender: TObject);
begin
  Timer1.Enabled := False
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  case Key of
    VK_F5: btnIniciar.Click; // F5: Iniciar
    VK_F6: btnParar.Click;   // F6: Parar  
  end;
end;
...

Saludos.

miguelnoda 29-12-2012 03:59:18

Muchas gracias amigo pero cuando corrijo el código me salta error en FormCreate

Código:

procedure TForm1.FormCreate(Sender: TObject);
que se supone que debo cambiar?, he probado a poner el nombre de la aplicación pero nada:(

ecfisa 29-12-2012 05:08:03

Cita:

Empezado por miguelnoda (Mensaje 452639)
Muchas gracias amigo pero cuando corrijo el código me salta error en FormCreate

Código:

procedure TForm1.FormCreate(Sender: TObject);
que se supone que debo cambiar?, he probado a poner el nombre de la aplicación pero nada:(

Hola.

Te adjunto el código funcional del ejemplo para que lo revises con tranquilidad.

Saludos. :)

miguelnoda 29-12-2012 05:14:24

Solucionado, muchas gracias y perdón por las molestias.

ecfisa 29-12-2012 05:21:06

Cita:

Empezado por miguelnoda (Mensaje 452643)
Solucionado, muchas gracias y perdón por las molestias.

No es ninguna molestia, intentar ayudar es la finalidad de Club Delphi. ;)

Saludos. :)

miguelnoda 29-12-2012 23:17:33

Vale ya tengo programado el ''Autoclick'' con sus ''hoykeys'', pero ahora el problema es que solo funcionan cuando tengo la ventana del ''Autoclick'' seleccionada. Ami me interesa que funcione con la ventana minimizada ya que se va a usar con otras aplicaciones. ¿ Hay alguna forma de que se pueda hacer esto?, Muchas gracias.

ecfisa 30-12-2012 06:53:50

Hola Miguel.

Revisa este [hilo], en el mensaje #15 existe un enlace que podría interesarte.

Saludos. :)


La franja horaria es GMT +2. Ahora son las 07:33:14.

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