clovisystem 0 Posted September 6, 2017 Report Share Posted September 6, 2017 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??? Link to post Share on other sites
clovisystem 0 Posted September 7, 2017 Author Report Share Posted September 7, 2017 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... Link to post Share on other sites
nunopicado 1,251 Posted September 8, 2017 Report Share Posted September 8, 2017 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. Link to post Share on other sites
nunopicado 1,251 Posted September 8, 2017 Report Share Posted September 8, 2017 (edited) De qualquer forma, se quiseres usar o OnChangeTracking, basta isto: procedure TForm1.Edit1ChangeTracking(Sender: TObject); begin Edit1.Text := UpperCase(Edit1.Text); end; Edited September 8, 2017 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. Link to post Share on other sites
clovisystem 0 Posted September 8, 2017 Author Report Share Posted September 8, 2017 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 Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now