Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mantener click izquierdo (https://www.clubdelphi.com/foros/showthread.php?t=90359)

Ramsay 23-05-2016 23:34:42

Mantener click izquierdo
 
Me ha gustado el codigo de este truco : http://www.clubdelphi.com/foros/showthread.php?t=80410 , ¿ se podria hacer un codigo para mantener el click izquierdo por un rato (5 segundos y despues soltar) , intente con un timer de click izquierdos pero no es lo mismo , ¿ como deberia hacerlo ?

ecfisa 24-05-2016 03:05:31

Hola.

Un ejemplo con un TButton, dos TLabel y un TSpeedButton para resaltar el mouse presionado:
Código Delphi [-]
...
implementation

const
  BTLEFTDOWN = 0;
  BTLEFTUP   = 1;

procedure ButtonLeftAction(DownUp: Integer);
var
  si: array [0..1] of TInput;
begin
  FillChar(si, SizeOf(si), 0);
  si[0].Itype      := INPUT_MOUSE;
  si[0].mi.dwFlags := MOUSEEVENTF_LEFTDOWN;
  si[1].Itype      := INPUT_MOUSE;
  si[1].mi.dwFlags := MOUSEEVENTF_LEFTUP;
  Windows.SendInput(1, tagINPUT(si[DownUp]), SizeOf(TInput));
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Enabled  := False;
  Timer1.Interval := 1000;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Inc(FCount);
  Label2.Caption := Format('%d',[FCount]);
  if FCount = 5 then
  begin
    ButtonLeftAction(BTLEFTUP);
    Label1.Caption := 'Botón izquierdo liberado';
    Timer1.Enabled := False;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  p: TPoint;
  sp: TSpeedButton;
begin
  sp := SpeedButton1;
  p  := ClientToScreen(Point(sp.Left + 5, sp.Top + 5));
  SetCursorPos(p.X, p.Y);
  ButtonLeftAction(BTLEFTDOWN);
  Label1.Caption  := 'Botón izquierdo presionado';
  Label2.Caption  := '';
  FCount          := 0;  // ( Variable privada de Form1 )
  Timer1.Enabled  := True;
end;

Vista:


Saludos :)

Ramsay 25-05-2016 19:18:03

Gracias por la ayuda ecfisa.


La franja horaria es GMT +2. Ahora son las 14:24:11.

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