problemas com bloqueio de teclas

14/03/2006

pessoal tenho um Form do tipo fsNormal... gostaria de bloquear a combinação de teclas Alt+F4 nele, porem nao pode ser por nenum tipo de exemplo do tipo os abaixo:

Obs: se trata de um form de Login que é chamado pelo formulario principal (fsMDIForm) no OnCreate...
O restante dos formularios sao MDIChild, entao se eu usar algum desses exemplos abaixo, nao consigo acessar os Forms MDIChild.

Quem puder me ajudar... fico grato...

Abraços a todos...

-------------------EXEMPLO 1 --------------------------------------------
procedure TLogin.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := False;
end;
-----------------------------------------------------------------------------

------------------EXEMPLO 2 ---------------------------------------------
  public
  { Public declarations }
  fecha: Boolean;
  end;
 
implementation
 
{$R *.DFM}
 
Function GetStateK (Key: integer): boolean;
begin
  Result := Odd (GetKeyState (Key));
end;
 
procedure Tfrm_HIP.FormClose(Sender: TObject; var Action: TCloseAction);
begin
If Not fecha Then
Action := caNone Else
Action := caFree;
end;
 
procedure Tfrm_HIP.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If GetStateK (VK_LMENU) And (Key = VK_F4) Then
fecha 
--------------------------------------------------------------------------------





Mahdak

Respostas

15/03/2006

Mahdak

Up :shock:


Responder Citar

15/03/2006

Paullsoftware

cara faz assim:

no form cria uma variável global:
var
 Form1 : TForm1;
 ....
 wFechar : Boolean;

no onCreate do Form faz...
wFechar := False;


no OnCloseQuery Faça:
CanClose := wFechar;


se tratando de um form login, vc tem o código que localiza o usuário e senha, então, no botão ´Entrar, Logar, Ok...´ quando os dados são Checados, coloque no final do código:
wFechar := True;
Close;


pronto, faz um teste ai! :wink:


Responder Citar

15/03/2006

Mahdak

resolvido...
valleu!!!!


Responder Citar