Fórum Problema com acesso a botões com ALT + letra sublinhada #425681
06/10/2012
0
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?
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
Curtir tópico
+ 0
Responder
Posts
06/10/2012
Rafael Encinas
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
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
Responder
Gostei + 0
06/10/2012
Junio Silva
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.
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)