Problema com acesso a botões com ALT + letra sublinhada

Delphi

06/10/2012

Pessoal, eu tenho um form com alguns botões, nos quais eu coloquei o "&" no caption para que eu possa acessar usando o ALT + a tecla sublinhada.

Até ai tudo bem, só que eu também tenho um DBGrid nesse form, e quando o foco está setado nele e o usuário digita alguma coisa aparece um Edit para o usuário digitar, e assim fazer um "Dataset.locate".

Só que quando o usuário digita alguma letra, estando com o foco no DBGrid, a qual está associada há algum botão que está com "&" e a letra sublinhada, o foco é alterado para este borão.


Alguém tem alguma noção?
Junio Silva

Junio Silva

Curtidas 0

Respostas

Rafael Encinas

Rafael Encinas

06/10/2012

Olá boa noite!

Aparentemente está tendo problemas nos eventos OnKeyDown e KeyPreview do Form. Dependendo do lugar onde o evento é disparado pode dar conflito.

Primeiro: No edit que aparece tem algum evento ?
Segundo: No DGrid que tem algum evento envolvendo as teclas de atalho ?

Grato

Rafael Encinas
GOSTEI 0
Junio Silva

Junio Silva

06/10/2012

O Keypreview do Form está True.

No evento OnKeyDown do Form eu tenho alguns atalhos:
if Key = Vk_Escape then btnFechar.Click;
if (Key = Vk_F3) and (btnAlterar.Enabled) then btnAlterar.Click;


No evento OnKeyUp do DBGrid eu tenho o seguinte:
nCol := TStringGrid(dbgPesquisa).Row;
if Key = VK_UP then
if nCol = 1 then
edtValor.SetFocus;
//Se estiver na primeira linha do DBGrid e o usuário apertar UP vai para o Edit que uso na pesquisa


No evento OnKeyPress do DBGrid, caso o usuário digite algo do conjunto ele popula o Edit com a tecla pressionada:
if key in ['a'..'z','A'..'Z','0'..'9'] then
edtLocalizar.Text := Key;

E no edtLocalizar, evento OnChange, eu faço uma busca com locate no DataSet.



GOSTEI 0
POSTAR