Problema com MessageBeep
Tenho uma aplicação em que uso o enter como TAB e tambem para pesquisa!
Toda vez que eu teclo ´Enter´, o sistema da o bep do windows!!
No evento OnKeyPress do Form eu jogo o foco para o próximo campo e no evento OnKeyPress do Edit eu faço a busca conforme exemplo abaixo!!!
São muitos edits em que eu tenho que usar o keypress para pesquisa, por isso não posso alterar na mão cada um deles!!!
Mudando o key como ´#0´ no Keypress do form não resolve!!!
Preciso dar um jeito nisso... alguem pode me ajudar???
[color=darkblue:a861af2d99]procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
case key of
13: Perform(WM_NEXTDLGCTL,0,0);
27: Close;
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = 13 then
begin
Buscar_Registros(Edit1.Text);
AtualizaTela;
end;
end;[/color:a861af2d99][color=darkblue:a861af2d99][/color:a861af2d99]
Toda vez que eu teclo ´Enter´, o sistema da o bep do windows!!
No evento OnKeyPress do Form eu jogo o foco para o próximo campo e no evento OnKeyPress do Edit eu faço a busca conforme exemplo abaixo!!!
São muitos edits em que eu tenho que usar o keypress para pesquisa, por isso não posso alterar na mão cada um deles!!!
Mudando o key como ´#0´ no Keypress do form não resolve!!!
Preciso dar um jeito nisso... alguem pode me ajudar???
[color=darkblue:a861af2d99]procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
case key of
13: Perform(WM_NEXTDLGCTL,0,0);
27: Close;
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = 13 then
begin
Buscar_Registros(Edit1.Text);
AtualizaTela;
end;
end;[/color:a861af2d99][color=darkblue:a861af2d99][/color:a861af2d99]
Lucas_sistemas
Curtidas 0
Respostas
Carlosrm
26/08/2009
lucas_sistemas,
testei apenas no Delphi 7:
1) Troquei o evento EditKeyPress pelo EditKeyDown. Necessário trocar o tipo de dado do parâmetro (13, vk_return,...). Digitei uma vez no EditKeyDown e apontei os outros edits para lá;
2) No evento FormKeyPress, acrescentei a linha ´key := #0´ que é a instrução que ´desliga´ o beep, nesse caso;
3) Acrescentei um Bitbtn no form, que é um componente que também recebe foco, igual às Edits. Coloquei no (primeiro e último) evento do Bitbtn a mesma instrução final para passar para o próximo foco.
Espero ter ajudado em algo.
carlosrm
testei apenas no Delphi 7:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin case key of #13: begin Key := 0; Perform(WM_NEXTDLGCTL,0,0); end; 27: Close; end; end; procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = 13 then begin showmessage(´Ôba!´); //Buscar_Registros(Edit1.Text); showmessage(´Ôba! Ôba! Ôba! Ôba!´); //AtualizaTela; end; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin showmessage(´Bambalalão!´); Perform(WM_NEXTDLGCTL,0,0); end;
1) Troquei o evento EditKeyPress pelo EditKeyDown. Necessário trocar o tipo de dado do parâmetro (13, vk_return,...). Digitei uma vez no EditKeyDown e apontei os outros edits para lá;
2) No evento FormKeyPress, acrescentei a linha ´key := #0´ que é a instrução que ´desliga´ o beep, nesse caso;
3) Acrescentei um Bitbtn no form, que é um componente que também recebe foco, igual às Edits. Coloquei no (primeiro e último) evento do Bitbtn a mesma instrução final para passar para o próximo foco.
Espero ter ajudado em algo.
carlosrm
GOSTEI 0
Rweberich
26/08/2009
Bom dia Lucas,
..é falcil de resolver:
1º - Na propriedade ´KeyPreview´ do formulario vc coloca ´True´.
2º - No evento OnKeyPress do formulario vc informa o seguinte codigo:
[b:1d9c179345]procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = 13 then
begin
Key := 0;
Perform(WM_NextDlgCtl, 0, 0);
end;
end;[/b:1d9c179345]
Abraco.
[color=darkblue:1d9c179345]procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
case key of
#13: Perform(WM_NEXTDLGCTL,0,0);
27: Close;
end;
end;
[/color:1d9c179345][color=darkblue:1d9c179345][/color:1d9c179345]
..é falcil de resolver:
1º - Na propriedade ´KeyPreview´ do formulario vc coloca ´True´.
2º - No evento OnKeyPress do formulario vc informa o seguinte codigo:
[b:1d9c179345]procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = 13 then
begin
Key := 0;
Perform(WM_NextDlgCtl, 0, 0);
end;
end;[/b:1d9c179345]
Abraco.
GOSTEI 0