o componenete nunca perde o foco
estou fazendo uma tela de pesquisa e quando eu digito algo q quero procurar ele me aparece numa DBGRID ai q começa o problema toda vez q preciso navegar na dbgrid tenho q sair do edit e c preciso fazer uma nova pesquisa tenho q tirar o foco do dbgrid, oque quero fazer e quando eu fizer a pesquisa o foco nunca saia do edit porem sempre q quizer navegar na grid eu possa ir com as setas igual o winanp faz quando vc vai procurar um musica
Eltontlms
Curtidas 0
Respostas
Somar
17/02/2005
Oq vc tem no evento OnExit do seu componente ?
GOSTEI 0
Dooda
17/02/2005
Caro amigo ELTONTLMS, não sei se é isso mesmo que vc quer mas tente o seguinte:
OnEnter do EdtPEsquisa : KeyPreview := False;
OnExit do EdtPEsquisa : KeyPreview := True;
Faça o tratamento da movimentações no OnKeyDown do EdtPesquisa Tipo:
#
if (shift = [ssctrl]) then // Control pressionado
begin
if (Key = VK_PRIOR) then // PAGE UP - Primeiro registro
dtsCondCapa.DataSet.First
else if (Key = VK_NEXT) then // PAGE DOWN - Último registro
dtsCondCapa.DataSet.Last;
Exit;
end;
if (Key = VK_PRIOR) then // PAGE UP - Volta 5
dtsCondCapa.DataSet.MoveBy(-5)
else if (Key = VK_NEXT) then // PAGE DOWN - Avança 5
dtsCondCapa.DataSet.MoveBy(5)
else if (Key = VK_UP) then // Seta para cima
begin
dtsCondCapa.DataSet.Prior;
Key := 0;
end
else if (Key = VK_DOWN) then // Seta para baixo
begin
dtsCondCapa.DataSet.Next;
Key := 0;
end
else if (Key = VK_RETURN) then // Alterar
begin
if btbAlterar.Enabled then
btbAlterar.OnClick(Sender);
Key := 0;
end
else if (Key = VK_INSERT) then // Incluir
begin
if btbIncluir.Enabled then
btbIncluir.OnClick(Sender);
Key := 0;
end
else if (Key = VK_ESCAPE) then // Esc
btbCancelar.SetFocus;
#
No meu caso o componente que mostrava os dados no DBGrid é DtsCondCapa que é um DataSource da paleta DBExpress...
Vallews, qualquer coisa, manda um e-mail....
OnEnter do EdtPEsquisa : KeyPreview := False;
OnExit do EdtPEsquisa : KeyPreview := True;
Faça o tratamento da movimentações no OnKeyDown do EdtPesquisa Tipo:
#
if (shift = [ssctrl]) then // Control pressionado
begin
if (Key = VK_PRIOR) then // PAGE UP - Primeiro registro
dtsCondCapa.DataSet.First
else if (Key = VK_NEXT) then // PAGE DOWN - Último registro
dtsCondCapa.DataSet.Last;
Exit;
end;
if (Key = VK_PRIOR) then // PAGE UP - Volta 5
dtsCondCapa.DataSet.MoveBy(-5)
else if (Key = VK_NEXT) then // PAGE DOWN - Avança 5
dtsCondCapa.DataSet.MoveBy(5)
else if (Key = VK_UP) then // Seta para cima
begin
dtsCondCapa.DataSet.Prior;
Key := 0;
end
else if (Key = VK_DOWN) then // Seta para baixo
begin
dtsCondCapa.DataSet.Next;
Key := 0;
end
else if (Key = VK_RETURN) then // Alterar
begin
if btbAlterar.Enabled then
btbAlterar.OnClick(Sender);
Key := 0;
end
else if (Key = VK_INSERT) then // Incluir
begin
if btbIncluir.Enabled then
btbIncluir.OnClick(Sender);
Key := 0;
end
else if (Key = VK_ESCAPE) then // Esc
btbCancelar.SetFocus;
#
No meu caso o componente que mostrava os dados no DBGrid é DtsCondCapa que é um DataSource da paleta DBExpress...
Vallews, qualquer coisa, manda um e-mail....
GOSTEI 0
Marco Salles
17/02/2005
sempre q quizer navegar na grid eu possa ir com as setas
Se eu entendi Direito....
procedure TFormConsultaProdutos.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_Down Then Table1.Next //exemplo else if Key = Vk_Up then Table1.prior; end;
GOSTEI 0