Tecnobyte Informática

Delphi - Teclado e Mouse

Como obter e alterar o tempo máximo do duplo-click do mouse?

Inclua na seção uses: Windows

{ - Coloque um botão no form e escreva seu OnClick como
    abaixo: }

procedure TForm1.Button6Click(Sender: TObject);
var
  Tempo: Cardinal;
begin
  { Obtém }
  Tempo := GetDoubleClickTime;
  ShowMessage(IntToStr(Tempo) + ' milisegundos');

  { Define }
  SetDoubleClickTime(300);
end;

Observações

Um duplo-click nada mais é que dois cliques consecutivos (óbvio). Porém estes dois cliques podem ser interpretados de duas formas: dois cliques isolados ou um duplo-click. Para o Windows resolver esta situação, ele usa o que chamo de "tempo máximo do duplo-click". Se o intervalo entre o primeiro e o segundo click for menor ou igual a esse tempo, então houve duplo-click. E você pode alterar este tempo. O padrão do Windows é 500 milisegundos. Um tempo muito curto (ex: 100), faz com que o duplo-click tenha que ser muito rápido (quase impossível), enquanto muito longo (ex: 2000) faz com que o Windows interprete dois clicks isolados como duplo-click.