Abrir um form usando a tecla ESC...

Delphi

25/03/2005

Alguém saberia me informar o código de como abrir um formulário usando apenas a tecla ´ESC´ quando o sistema estiver rodando?
Tentei assim.
IF Key = 27 Then
    Application.CreateForm(TFrmLogin,FrmLogin);
    FrmLogin.ShowModal;

Só que não funcionou.
Erivan marinho.


Peninha

Peninha

Curtidas 0

Respostas

Raserafim

Raserafim

25/03/2005

como vc não disse onde e qual é o erro, vou detalhar cada parte mesmo parecendo ser óbviu:
vc deverá utilizar o seguinte código no evento OnKeyDowm:

IF Key = 27 Then 
begin 
  Application.CreateForm(TFrmLogin,FrmLogin); 
  FrmLogin.ShowModal;
end;


o primeiro erro do seu código é que faltou o begin e o end. sem estes o form só seria criado se satisfizesse a condição, mas o form sempre iria executar a linha que pede para exibir o form.
A linha Application.CreateForm(TFrmLogin,FrmLogin) só é necessária caso vc tenha explicitamente comentado a linha que faz o delphi criar o form automaticamente, então vc usaria o begin e o end apenas se quisesse.


GOSTEI 0
Michael

Michael

25/03/2005

Olá amigo!

Bom, vc não especificou em qual evento chamou o código. Se foi em OnKeyPress, então deve preceder o código da tecla por #.

IF Key = 27 Then 
begin 
  Application.CreateForm(TFrmLogin,FrmLogin); 
  FrmLogin.ShowModal; 
end;


[]´s


GOSTEI 0
Peninha

Peninha

25/03/2005

Amigos, segui as instruções que me passaram, pois não obtive nenhum sucesso.
Coloquei os códigos tanto no evento OnKeyDwon como no OnkeyPress do form principal chamando o form Login mas não acontece nada e nem me retorna nenhum erro. mais alguma susgestão?
Erivan Marinho.


GOSTEI 0
Fred

Fred

25/03/2005

Olha eu fiz um teste rapido no OnKeyPress e funcionou certinho:

if key = #27 then
   showmessage(´Esc´);

          


experimente mudar a propriedade KeyPreview do form Principal para True! (o meu funcionou com false e true)


GOSTEI 0
Peninha

Peninha

25/03/2005

Amigo, será que daria para vc me explicar melhor? pois não entendi o porque de ShowMessage(´Esc´);
Erivan Marinho.


GOSTEI 0
Marco Salles

Marco Salles

25/03/2005

Olha eu fiz um teste rapido no OnKeyPress e funcionou certinho: Código: if key = #27 then showmessage(´Esc´); [color=red:480bcdd028]experimente mudar a propriedade KeyPreview do form Principal para True! (o meu funcionou com false e true[/color:480bcdd028])


Amigo, será que daria para vc me explicar melhor? pois não entendi o porque de ShowMessage(´Esc´); Erivan Marinho.


Acredito que ele quis dizer que a mensagem foi processada , com o , Presionando a Tecla Key No Form principal.. Logo , tudo que Tiver Dentro Do <Begin End> Consequentemente será Processada Tambem

Entao , no lugar da Intruçao Showmessage(´Esc´) , Experimente colocar aquilo que voce deseja fazer , que no caso e Criar e abrir um novo formulário....

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
// showmessage(´Esc´);
Application.CreateForm(TFrmLogin,FrmLogin); 
 FrmLogin.ShowModal; 
 Freeandnil(FrmLogin);
end;


:idea: :idea: [color=red:480bcdd028] Não esqueça de Options :arrow: Projects :arrow: Avalaible Forms Etc.....[/color:480bcdd028]


GOSTEI 0
POSTAR