LÓGICA ERRADA

Delphi

07/05/2004

É o seguinte estou desenvolvendo um sistema e estou na parte das teclas de atalhos num formulario que servira de padrao para os outros(herança).
O programa chama uns panels que estão escondidos dentro desse form e esses panels, alguns, tem botões de Sim e Não. O problema ocorre aí.
As teclas de atalho são ´S´ e ´N´, respectivamente. Mas quando teclo S ou N, a tecla é acrescentada dentro de um TEdit.
Detalhes:
procedure TFormPai.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

if key=ord(´N´) then begin
if vkey=´C´ then begin
key:=ord(#0);
No.Click;
end;
end;
if key=ord(´S´) then begin
if vkey=´C´ then begin
key:=ord(0);
Ok.Click;
end;
end;
end;

obs: vkey é uma variavel global para eu usar as teclas de atalho conforme situações. No e Ok sao TButton.

O que fazer???
Desde já meus agradecimentos.


G1b4

G1b4

Curtidas 0

Respostas

G1b4

G1b4

07/05/2004

Fiz uns testes e descobri a questão. Nos eventos Onkeydown e Onkeyup, o delphi não mostra caracter na tela atribuidos a key. Agora no Onkeypress ele mostra...

Criei uma outra variavel global vanula, s para anular caracter e n para não.

Olhem:

procedure TFormPai.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
vanula:=´N´;
if key=ord(´N´) then begin
vanula:=´S´;
if vkey=´C´ then begin
key:=ord(#0);
No.Click;
end;
end;
if key=ord(´S´) then begin
vanula:=´S´;
if vkey=´C´ then begin
key:=ord(0);
Ok.Click;
end;
end;
end;

procedure TFCadPai.FormKeyPress(Sender: TObject; var Key: Char);
begin
if vanula=´S´ then key:=0;
end;

Ok???


GOSTEI 0
Nildo

Nildo

07/05/2004

Leia as regras de conduta. Titulos em letras maiusculas são PROIBIDOS


GOSTEI 0
POSTAR