Fórum LÓGICA ERRADA #230630
07/05/2004
0
É 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.
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
Curtir tópico
+ 0
Responder
Posts
07/05/2004
G1b4
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???
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???
Responder
Gostei + 0
07/05/2004
Nildo
Leia as regras de conduta. Titulos em letras maiusculas são PROIBIDOS
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)