Como chamar um form através de uma tecla?

Delphi

30/10/2004

Oi pesoal, estou tentando abrir um form de pesquisa mediante o presionamento da tecla (F2). coloquei o seguinte código:
procedure TFRm_EntraProduto.FormKeyPress(Sender: TObject; var Key: Char);
begin
  IF ( Key = #113) THEN
      Begin
        Key:=113;
         Application.CreateForm(TFrm_Cadprod,Frm_CadProd);
         Frm_CadProd.ShowModal;
         Frm_CadProd.Release;
        SelectNext((Sender as TWinControl),True,True);
      End;
end;

Mas infelizmente não obtive sucesso, alguém pode me ajudar?
peninha


Peninha

Peninha

Curtidas 0

Respostas

Tatuweb

Tatuweb

30/10/2004

O problema é que vc declarou a função no evento OnKeyPress. Basta declarar no evento OnKeyDown que não vai ter problema. Não se esqueça de colocar a propriedade KeyPreview do form para True.

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = vk_F2) then
    // faz alguma coisa
end;



GOSTEI 0
Vanderley

Vanderley

30/10/2004

procedure TFRm_EntradaProduto.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if(Key = vk_F2)then begin
Application.CreateForm(TFrm_Cadprod,Frm_CadProd);
Frm_CadProd.ShowModal;
Frm_CadProd.Release;
SelectNext((Sender as TWinControl),True,True);
end;
end;
[color=green:006c396a00][/color:006c396a00]


GOSTEI 0
Gabeloni

Gabeloni

30/10/2004

Pessoal...,

Alguem poderia explicar o pq de não funcionar em OnKeyPress e funcionar em OnKeyDown ? Apenas curiosidade.., pois acabamos por fazer muito desses erros....

obrigado..., até !!


GOSTEI 0
POSTAR