Usando KeyPress ?

22/03/2006

Oi !

Criei um DBEdit derivado da classe TDBEdit, Gostaria de testar uma condição no KeyPress do mesmo.

Exemplo:

Eu criei uma propriedade chamada EditKeyTab, lá eu defino qual tecla vai ser usado para passar de um edit para o outro. tipo: #13,

Mais se eu coloco para Passar com Enter, o usuário tb pode usar a tecla TAB, e funciona.

Eu Gostaria de testar se o usuário usou uma tecla para continuar ou para voltar.

Exemplo:

Tenho uma propriedade chamada TabKey

Goatria de testar assim

if TeclouParaPularparaOutroEdit then
TabKey := True
else
TabKey := False;


vou colocar o techo do código que estou testando.


procedure TSDBEdit.KeyPress(var Key: Char);
var
 FEditTemp : TCustomForm;
begin
  if Key = EditKeyTab then begin //Tecla definida para pular para o próximo edit exempo 13.
    FEditTemp := GetParentForm(Self);
    SendMessage(FEditTemp.Handle, WM_NEXTDLGCTL, 0, 0);
   TabKey := True;  // Só que ele pode usar o Tab e não passa aqui...
    Key := #0;
  end
  else begin
    if EditInput = etNumero then begin
      if not (Key in &91;´0´..´9´,8,13&93;) then
        Key := 0;
      if Key = 32 then
        Key := 15;
    end;
    if EditInput = etString then begin
      if (key in &91;´0´..´9´&93;) then
       key := 13;
    end;

  end;

  if Key <> 0 then
    inherited KeyPress(Key);
end;




Obrigada.


Renatacoimbra

Respostas

22/03/2006

Edilcimar

Se entendi direito o que vc está querendo fazer é ´gravar´ qual a tecla pressionada, se for isto, crie uma matriz dinâmica e vá colocando as teclas ou o valor das memas nesta matriz, assim vc poderá fazer o que quiser com elas depois, inclusive guardar em um arquivo


Responder Citar