Tecnobyte Informática

Delphi - Teclado e Mouse

Como posicionar o cursor do mouse em um controle via programação?

Inclua na seção uses: Windows

{ Digite a procedure abaixo imediatamente após a palavra
  implementation no código do seu formulário. }

procedure MouseParaControle(Controle: TControl);
var
  IrPara: TPoint;
begin
  IrPara.X := Controle.Left + (Controle.Width div 2);
  IrPara.Y := Controle.Top + (Controle.Height div 2);
  if Controle.Parent <> nil then
    IrPara := Controle.Parent.ClientToScreen(IrPara);
  SetCursorPos(IrPara.X, IrPara.Y);
end;

{ Para testar, coloque no Form um botão e troque o name dele
  para btnOK e modifique o evento OnShow do Form 
  conforme abaixo: }

procedure TForm1.FormShow(Sender: TObject);
begin
  MouseParaControle(btnOk);
end;

Observações

A função "MouseParaControle" recebe um parâmetro do tipo TControl. Isto significa que você poderá passar para ela qualquer controle do Delphi, tais como: TEdit, TButton, TSpeedButton, TPanel, etc. Pode ser até mesmo o próprio Form.