Ir ao conteúdo

Como usar um comando composto pelo delphi? ex: Ctrl+A.


Matheus Lacombe

Posts recomendados

Postado

Olá pessoal, tudo bem? Minha dúvida é bastante simples, gostaria apenas de saber como aplicar um comando qualquer por um botão do delphi, exemplo: Aperto em um Button1 para usar "Ctrl+A".

ALguém saberia?

PS: Já tentei algo como

keybd_event(VK_CONTROL, #65);

Não funciona..

Abraços, aguardo respostas.

Postado

Não sei se enetndi ao certo o que você está querendo então vamos vou descrever o que entendi.

Você tem um textop no seu programa e quer seleciona-lo quando clicar em um botão é isso?

Ou quer simular combinação de teclas pelo delphi?

Postado

- Na realidade a questão do "Ctrl+A" foi apenas um exemplo para ilustrar o problema.

- Como você falou, quero simular o presionar de teclas através do delphi, isso inclúi teclas de comando e alfabéticas também. Por isso usei o exemplo do "Ctrl+A", pois possúi teclas alfabéticas, "A" e de comando, "Ctrl".

- Então, como poderia usar o comando "Ctrl+A" pelo delphi. Ex:

Memo1.setFocus;
Simula o comando Ctrl+A;
// Com isso o texto é selecionado;

Lembrando, isso é APENAS um exemplo. Poderia simular um Ctrl+Z, ou um Ctrl+F7. Enfim, qualquer comando. Só não sei o coamndo para fazer isso.

Clareou ai?

Abraços, aguardo respostas.

Postado

Bem simular CTRL+V CTRL+C CTRL+X

procedure TFormCadastro.TransDadosClick(Sender: TObject); {botao}

begin

usuario.SelectAll; {usuario é um campo de texto tipo edit1.text, mas eu não utilizo a propriedade}

usuario.cuttoclipboard;

end;

Para copiar copytoclipboard

para colar pastefromclipboard

Exemplo de como simular as teclas que talvez seja o que você quer:

Simular o pressionamento de uma combinação de teclas (ex: Ctrl+F2)

Inclua na seção uses: Windows

{ Mantém pressionada CTRL }

keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY or 0, 0);

{ Pressiona F2 }

keybd_event(VK_F2, 0, 0, 0);

{ Libera (solta) CTRL }

keybd_event(VK_CONTROL, $45, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);

Observações

Neste exemplo pressionamos Ctrl+F2. Não se esqueça das teclas que precisam manter pressionadas: Ctrl, Alt, Shift.

Retirado de http://www.tecnobyte.com.br/dica2.html#dica48

Codigo de combinações dce teclas: http://www.arquivodecodigos.net/arquivo/referencias/delphi/codigos_teclas_virtuais.php

Postado

Sim, sim, sim.. É disso que estava falando, porém precisava usar letras também. Exemplo: "Ctrl+F". No caso neste aqui não tenho como substituir o "F2" pela tecla "F" para que o código resulte em "Ctrl+F", tenho? Pelo que tentei não funciona. E agora?

{ Mantém pressionada CTRL }
keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY or 0, 0);

{ Pressiona F2 }
keybd_event(VK_F2, 0, 0, 0);

{ Libera (solta) CTRL }
keybd_event(VK_CONTROL, $45, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);

Postado

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.SetFocus;
keybd_event(VK_CONTROL,0,WM_KEYDOWN,0); //Presiona a tecla Shift
keybd_event(Ord('F'),0,WM_KEYDOWN,0); // Pressiona a tecla Z
keybd_event(Ord('F'),0,KEYEVENTF_KEYUP,0); //Libera Shift
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); // Libeta a tecla Z
end;

Com ele consegui dar um Ctrl+z em um edit e voltar aquilo que escrevi, mas não consigo dar o bendito Ctrl+F em um webbrowser para abrir a janela de busca por palavras, ou um Ctr+A para selecionar o texto do webbrowser. :(

Postado

Não entendo, só funciona se antes de usar o botão(código abaixo) onde esta o comando para usar "Ctrl+A" se antes disso eu clicar no webbrowser manualmente, mesmo quando uso o "Webbrowser1.Setfocus;". E detalhe, só funciona uma vez, não sei porque raios.. E outra, o comando seguinte (Ctrl+C) não funciona, mesmo continuando com o foco.

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.SetFocus;
keybd_event(VK_CONTROL,0,WM_KEYDOWN,0); //Presiona a tecla Shift
keybd_event(Ord('A'),0,WM_KEYDOWN,0); // Pressiona a tecla Z
keybd_event(Ord('A'),0,KEYEVENTF_KEYUP,0); //Libera Shift
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); // Libeta a tecla Z
end;

Alguém ajuda ai por favor, ta quase, mas essas coisas me quebram..

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!