Fórum Passar de um campo para outro se usar o TAB ou ENTER #242413
10/07/2004
0
gostaria de saber se existe alguma rotina ou comando q faça a mudança de um campo para outro sem precisar usar o TAB ou ENTER, por exemplo: no Edit 1 o campo maximo de caracteres é 5 e no Edit 2 tambem, quando eu acabar de digitar no Edit 1, automaticamente ele passe o curso para o Edit 2 e assim sucessivamente em todos os Edits que existirem no Form.
José Silva
Curtir tópico
+ 0Posts
11/07/2004
Fabio.hc
procedure TForm1.Edit1Change(Sender: TObject); begin if (Sender as TEdit).MaxLength = Length((Sender as TEdit).Text) then Perform(WM_NEXTDLGCTL,0,0); end;
Faça todos o edit´s chamar este evento no onChange edit1.
Defina o MaxLength de cada edit.
Gostei + 0
11/07/2004
José Silva
coloquei a linha de comando no primeiro DBEdit e lliguei todos os outros com o mesmo comando. so q ao executar o aplicativo, informa uma mensagem de erro dizendo o seguinte:
Exceção EInvalidcast no modulo Paiol.exe. Not 000A82EB
Typecast de classe invalido.
como resolvo este problema?
Obrigado pela atenção
Gostei + 0
11/07/2004
Beppe
procedure TForm1.DBEdit1Change(Sender: TObject); begin if (Sender as TCustomEdit).MaxLength = Length((Sender as TCustomEdit).Text) then Perform(WM_NEXTDLGCTL,0,0); end;
Gostei + 0
11/07/2004
Dankada
coloquei a linha de comando no primeiro DBEdit e lliguei todos os outros com o mesmo comando. so q ao executar o aplicativo, informa uma mensagem de erro dizendo o seguinte:
Exceção EInvalidcast no modulo Paiol.exe. Not 000A82EB
Typecast de classe invalido.
como resolvo este problema?
Obrigado pela atenção[/quote:72e7d4d36b]
eu acabei de testa essa rotina q o nosso amigo acima informou e ela funciona perfeitamente, vc deve esta fazendo algo errado ai
ps. seleciona todo os edits e vai no evento onChange e coloca a rotina que vai funcionar
Gostei + 0
11/07/2004
José Silva
if (Sender as TCustomEdit[b:31b48ddb49]).MaxLength[/b:31b48ddb49] = Length((Sender as TCustomEdit).Text) then
este codigo so funciona com EDIT? nao funciona com DBEDIT? estou usando tabela parafox
Gostei + 0
11/07/2004
Codigodelphi
if key=#13 then
begin
selectnext(sender as twincontrol, true, true);
key:=0;
end;
Gostei + 0
12/07/2004
Moonlight
Gostei + 0
12/07/2004
Fabio.hc
procedure TForm1.DBEdit1Change(Sender: TObject); begin if (Sender as TDBEdit).MaxLength = Length((Sender as TDBEdit).Text) then Perform(WM_NEXTDLGCTL,0,0); end;
Ou assim:
procedure TForm1.DBEdit1Change(Sender: TObject); begin if (Sender as TDBEdit).Field.DisplayWidth = Length((Sender as TDBEdit).Text) then Perform(WM_NEXTDLGCTL,0,0); end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)