GARANTIR DESCONTO

Fórum Simular click na combobox #268918

16/02/2005

0

Como faço para simular um clique do mouse na seta do combobox, mas sem o mouse estar perto do combobox?

O que quero é que ao receber o foco de entrada a lista apareça automaticamente. Mas quero que antes que a lista apareça a seta do combo tenha o mesmo efeito que quando clicada.


Raserafim

Raserafim

Responder

Posts

17/02/2005

Buosinet

Use:

ComboBox1.DroppedDown := True;

Para mostrar a lista

ComboBox1.DroppedDown := False;

Para esconder a lista

Boa Sorte
Buosi


Responder

Gostei + 0

17/02/2005

Raserafim

buosinet, exibir a lista eu já havia conseguido, mas o problema é que quero que o botão da seta do combo seja pressionada (ou melhor, tenha o efeito de que foi pressionada).


Responder

Gostei + 0

17/02/2005

Diogoalles

O exemplo abaixo simula o pressionamento da tecla do botão esquerdo do mouse em uma determinada posição da tela. No exemplo serão utilizados dois botões (Button1 e Button2), ao clicar no Button2 será executado o onClick do Button1 como se o mouse tivesse clicado sobre ele.

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(´Button 1 clicked´);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
Pt : TPoint;
begin
Application.ProcessMessages;
{Obtém o point no centro do Button1} 
Pt.x := Button1.Left + (Button1.Width div 2);
Pt.y := Button1.Top + (Button1.Height div 2);
{Converte Pt para as coordenadas da tela } 
Pt := ClientToScreen(Pt);
Pt.x := Round(Pt.x * (65535 / Screen.Width));
Pt.y := Round(Pt.y * (65535 / Screen.Height));
{Move o mouse} 
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, Pt.x, Pt.y, 0, 0);
{Simula o pressionamento do botão esquerdo do mouse} 
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Pt.x, Pt.y, 0, 0);
{ Simula soltando o botão esquerdo do mouse } 
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Pt.x, Pt.y, 0, 0);
end;
  



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar