Jump to content
clovisystem

Edit repete caracteres

Recommended Posts

clovisystem

Estoudesenvolvendo um app em delphi xe5 paraandroid só que quando abro no meu tablet e digito algo na edit ele repete o que eu digito.... 

Ex.: digito N e quando digito A depois aparece na Edit NNA ao invés de NA... Alguém me ajuda ai???

Share this post


Link to post
Share on other sites
clovisystem

Eu inseri o seguinte código no evento OnChangeTracking: 

procedure TForm2.Edit1ChangeTracking(Sender: TObject); 

var thetext:String; 
begin 
thetext := Edit1.Text; 
Edit1.OnChangeTracking := nil; 
Edit1.Text := ''; 
Edit1.Text := AnsiUpperCase(thetext); 
//Edit1.Text := AnsiUpperCase(Edit1.Text); 
Edit1.OnChangeTracking := Edit1ChangeTracking; 
Edit1.GoToTextEnd; 
end; 

Eu sei que o erro pode estar aqui o evento transforma a letra em maiúscula mas dá esse problema das letras repetidas...

Share this post


Link to post
Share on other sites
nunopicado
Em 07/09/2017 às 03:19, clovisystem disse:

Eu sei que o erro pode estar aqui o evento transforma a letra em maiúscula mas dá esse problema das letras repetidas...

Porque não deixas escrever normalmente, e alteras para maiúsculas apenas no OnExit?

procedure TForm3.Edit1Exit(Sender: TObject);
begin
  (Sender as TEdit).Text := UpperCase((Sender as TEdit).Text);
end;

 

Outra forma seria fazer isso directamente ao receber a tecla, no OnKeyPress:

procedure TForm3.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if CharInSet(Key, ['a'..'z'])
    then Key := UpCase(Key);
end;

 


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
nunopicado

De qualquer forma, se quiseres usar o OnChangeTracking, basta isto:

procedure TForm1.Edit1ChangeTracking(Sender: TObject);
begin
  Edit1.Text := UpperCase(Edit1.Text);
end;

 

Edited by nunopicado

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
clovisystem
5 horas atrás, nunopicado disse:

Porque não deixas escrever normalmente, e alteras para maiúsculas apenas no OnExit?


procedure TForm3.Edit1Exit(Sender: TObject);
begin
  (Sender as TEdit).Text := UpperCase((Sender as TEdit).Text);
end;

 

Outra forma seria fazer isso directamente ao receber a tecla, no OnKeyPress:


procedure TForm3.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if CharInSet(Key, ['a'..'z'])
    then Key := UpCase(Key);
end;

 

Obrigado vou dar uma olhada

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.