Fórum Dúvida sobre SelectNext(), alguém pode me ajudar? #147148

18/03/2003

0

É o seguinte, criei um componente TEdit que no envento OnKeyPress verifica uma determinada condição, por exemplo:
no OnKeyPress eu coloquei

if Length(Self.Text) = 6 then
begin
SelectNext(Screen.ActiveControl, True, True);
ShowMessage(´Funcionou´);
end;

Coloquei o ShowMessage só pra testar e realmente funciona, a msg é mostrada mas a 1ª linha(SelectNext...) não é executada, ou seja, o próximo controle não é focado. Quero salientar que também tentei fazer isso colocando ao invés do SelectNext(), o comando
Perform(WM_NEXTDLGCTL, 0, 0);
Se eu colocar qualquer um desses comandos no OnKeyPress em TEMPO DE PROJETO funciona perfeitamente!
Porque será que não está funcionando?

Desde já agradeço,

ass: Milton Júnior.


Anonymous

Anonymous

Responder

Posts

18/03/2003

Andersonbox

Tente isto:

if (Key <> #8) and (Length(TEdit(Sender).Text) = 6) then
begin
SelectNext(Screen.ActiveControl, True, True);
ShowMessage(´Funcionou´);
Key := 0;
end;

NOTAS:
1o. veja se não foi a tecla BackSpace (8)
2o. Self está se referindo ao objeto ao qual a rotina OnKeyPress está ligada (Por exemplo: TForm1), no caso, vc deverá usar TEdit(Sender) e não Self.
3o. Desabilite a tecla se ele entrar na condição, caso contrário, poderão ser digitados mais que 6 números.

Espero que dê tudo certo.

AndersonBox.


Responder

Gostei + 0

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

Aceitar