Evento de teclado

Delphi

21/02/2003

Preciso gerar um evento em um form que, seja qual for o campo de edição, contido no form, ao teclar [Alt]+[A], forneça o caractere ´ª´ à entrada; ao teclar [Alt]+[O], forneça o caractere ´º´. Como posso fazer isto?

OBS: já tentei manipular o evento OnKeyDown da form, mas não surtiu efeito e as combinações acima não geram um char para o evento OnKeyPress


Anonymous

Anonymous

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

21/02/2003

Preciso gerar um evento em um form que, seja qual for o campo de edição, contido no form, ao teclar [Alt]+[A], forneça o caractere ´ª´ à entrada; ao teclar [Alt]+[O], forneça o caractere ´º´. Como posso fazer isto? OBS: já tentei manipular o evento OnKeyDown da form, mas não surtiu efeito e as combinações acima não geram um char para o evento OnKeyPress


No form coloque o tratamento no OnKeyPress e mude a propriedade [b:e716f1a5fc]KeyPreview para true.[/b:e716f1a5fc]
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = ´A´ then Key := ´B´;
end;



GOSTEI 0
Anonymous

Anonymous

21/02/2003

Conforme escrevi na minha mensagem original, as combinações [Alt]+[letra/numero] não geram o evento OnKeyPress, pois não geram um char ASCII direto. Tentei usar [Ctrl+A] e [Ctrl+O] no evento OnKeyPress, funcionou direito, exceto para os objetos TMemo e TRichEdit, onde a combinação [Ctrl+A] apaga todo o texto digitado antes de gerar o evento. Não quero desativar caracteres validos, pois acho deselegante e pouco intuitivo para o usuário. Gostaria de usar as combinações [Alt+A] para o caractere ª e [Alt+O] para o caractere º, e creio que só vou conseguir isto manipulando o evento OnKeyDown, só que não consegui fazê-lo; por isto, estou escrevendo para cá.

Pedro Campos
Rio de Janeiro, RJ


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

21/02/2003

Conforme escrevi na minha mensagem original, as combinações [Alt]+[letra/numero] não geram o evento OnKeyPress, pois não geram um char ASCII direto. Tentei usar [Ctrl+A] e [Ctrl+O] no evento OnKeyPress, funcionou direito, exceto para os objetos TMemo e TRichEdit, onde a combinação [Ctrl+A] apaga todo o texto digitado antes de gerar o evento. Não quero desativar caracteres validos, pois acho deselegante e pouco intuitivo para o usuário. Gostaria de usar as combinações [Alt+A] para o caractere ª e [Alt+O] para o caractere º, e creio que só vou conseguir isto manipulando o evento OnKeyDown, só que não consegui fazê-lo; por isto, estou escrevendo para cá. Pedro Campos Rio de Janeiro, RJ

Caro Pedro,

Minha sugestão é utilizar uma variável Private de comprimento de 2 para servir de ´pilha´ para entrada de dados e quando tiver uma combinação _a, _A, _o, _O, faça a conversão. Parece simples, mas vai ter que escrever um pouco.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

21/02/2003

Minha sugestão é utilizar uma variável Private de comprimento de 2 para servir de ´pilha´ para entrada de dados e quando tiver uma combinação _a, _A, _o, _O, faça a conversão. Parece simples, mas vai ter que escrever um pouco.


Desculpe, onde se lê: ´pilha´
leia-se: ´fila´


GOSTEI 0
Anonymous

Anonymous

21/02/2003

Valeu, meu caro Aroldo Zanela.

Pedro Campos
Rio de Janeiro, RJ


GOSTEI 0
POSTAR