Pesquisar no Programero

quinta-feira, 26 de junho de 2008

Centralizar Texto em Edit

Como todos sabemos o Edit mantém todo texto digitado a esquerda, o que não fica bem quando o usamos para a entrada de números, pois bem, o exemplo abaixo apresenta uma alternativa para centralizar um determinado valor dentro de um Edit:

procedure EditChange(Sender: TObject);
var
vl_label : TLabel; //variável do tipo Label


begin

vl_label := TLabel.Create(self); //criamos um label
WITH vl_label DO
BEGIN
Font.Name := TEdit(sender).Font.Name; //pegamos a fonte usada no edit
Caption := TEdit(sender).Text; //pegamos o conteúdo do edit
SendMessage(TEdit(sender).Handle, EM_SETMARGINS, EC_LEFTMARGIN,
(TEdit(sender).Width-vl_label.Width) div 2); //centraliza no label e retorna para o edit
END;

vl_label.Free;
end;

2 comentários:

  1. Ok, utilizei o código e funcionou perfeitamente. Obrigado.

    ResponderExcluir
  2. legal esse codigo funciona muito bem

    ResponderExcluir

Obrigado por Participar do programero, fique a vontade para agradecer, retificar, perguntar ou sugerir.