Mudando o texto de um edit no evento OnChange

Se o texto de um TEdit for mudado no seu evento OnChange, este even-to será chamado recursivamente até acabar com o espaço de pilha. Pa-ra fazer isso, deve-se setar o evento OnChange para NIL antes de mu-dar o texto, voltando ao original depois, desta maneira:

procedure Edit1Change(Sender :  TObject);
begin
  Edit1.OnChange := NIL;
  if Edit1.Text = 'Texto' then
    Edit1.Text := 'Novo Texto';
  Edit1.OnChange := Edit1Change;
end;

Esta dica também vale para evento OnValidate.

Fonte: Dicas e Truques Delphi v 2.6

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s