GARANTIR DESCONTO

Fórum Tecla TAB no OnKeyPress #348575

06/11/2007

0

Quero mudar a função da tecla TAB em um TEdit.
Pressionando TAB neste TEdit, não quero que ele passe o foco para o próximo componente, mas sim adicione um texto a esse mesmo campo.

Já tentei fazer com o OnKeyPress e com o OnKeyDown e nenhum dos 2 funcionou, ele se quer faz o q mandei, apenas muda o foco.

Tentei dessas formas:

procedure TfrmMain.txtMsgKeyPress(Sender: TObject; var Key: Char);
begi
  if (Key = #9) then begin
    Key := 0;
    Edit1.text := ´texto´
  end;
end;


procedure TfrmMain.txtMsgKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_TAB) then begin
    Key := 0;
    edit1.text := ´texto´;
  end;
end;


Ele simplesmente nao faz nada, so passa o foco pro proximo componente.
O que faço?

Obrigado


Kohl

Kohl

Responder

Posts

06/11/2007

Edilcimar

tente aí no onkeydown
If Key = vk_Tab then
faça algo
o keypreview do form tem que estar true


Responder

Gostei + 0

06/11/2007

Kohl

Tambem nao funcionou, tentei com os 2 metodos, OnKeyPress e OnKeyDown tambem com o #9 e nada, mesmo com o KeyPreview como true.

Ele continua focando o proximo componente e nao executando o que eu mandei.


Responder

Gostei + 0

06/11/2007

Vitor Alcantara

Amigo sei que da pra fazer isso com o componente ApplicationEvents no método Message.

Ai segue um exemplo;
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  case Msg.Message of
    WM_KEYDOWN:
    begin
      if (Msg.wParam = VK_TAB) //Testa o precionamento do TAB
     AND (ActiveControl = Edit1) //Verifica se o Edit1 está com o focu
     then
      begin
         Edit1.Text := ´Texto´;
         Edit1.SetFocus;
         abort;
      end;
    end ;
  end;
end;



Responder

Gostei + 0

06/11/2007

Kohl

Muito obrigado amigo, funcionou direitinho.
:D


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar