Paulo Nobre Postado Julho 6, 2004 Denunciar Share Postado Julho 6, 2004 Desculpem se a pergunta é idiota, mas como faço para centralizar o conteúdo do edit?ObrigadoPaulo Nobre Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Julho 6, 2004 Denunciar Share Postado Julho 6, 2004 Crie um TLabel (lb).Ative a propriedade AutoSize. procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char); begin lb.Font := TEdit(Sender).Font; lb.Caption := TEdit(Sender).Text + Key; SendMessage(TEdit(Sender).Handle, EM_SETMARGINS, EC_LEFTMARGIN, (TEdit(Sender).Width-lb.Width) div 2); end; Para qualquer edit que queira centralizar, aponte o evento onKeyPress para o evento acima. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Julho 7, 2004 Autor Denunciar Share Postado Julho 7, 2004 s3c,Criar um TLabel é simplesmente colocar um label no formulário com a propriedade visible = false ou significa alguma coisa mais complicada relacionada a classes.Faço esta pergunta pois onde vi sua resposta(no trabalho) não tenho o delphi e portanto não testei.obrigadoPaulo Npbre Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Turbo Postado Julho 7, 2004 Denunciar Share Postado Julho 7, 2004 não é só colocar um label normal, sem alterar a proriedade visible, mas pro q o s3c falou, você tem que alterar a propriedade autosize para true.vlw Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Julho 7, 2004 Denunciar Share Postado Julho 7, 2004 Tanto faz colocar um TLabel no Form e deixar visible=false ou criá-lo em execução.Particularmente prefiro criá-lo em execução por ser um objeto de auxílio.procedure TForm1.FormCreate(Sender:TObject);beginlb := TLabel.Create(Self);lb.AutoSize := true;end;Se não for definida a prorpiedade Parent, automaticamente ele fica invisível.E quando seu Owner é o TForm, ele se encarrega de liberá-lo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Julho 8, 2004 Autor Denunciar Share Postado Julho 8, 2004 s3c, testado e aprovado!!Apenas, como tive que usar também num edit que recebia resultado(embora pudesse ter feito isto num label), para colocar o código no evento OnChange retirei o "+ key" da linha do caption e funcionou corretamente.ObrigadoPS: Se você puder( e quiser), poderia explicar um pouco em termos teoricos o que acontece com o código? Estou tentando(sou iniciante), aos poucos, aprender de fato Delphi e não ser um mero "colador de códigos-ctrl+c e ctrl+v".Paulo Nobre Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Julho 8, 2004 Denunciar Share Postado Julho 8, 2004 Bom, um TEdit é uma janela Windows e como qualquer outra recebe e processa mensagens internamente. Em algumas delas temos acesso facilmente pelo Delphi, outras somente utilizando Apis, ou seja, mandamos que o Windows faça isso.O Delphi poderia disponibilizar a propriedade Alignment num TEdit, mas não o fez.Então fazemos isso mandando uma msg não para um TEdit do Delphi e sim para uma janela do Windows.O SendMessage manda uma msg para um controle do Windows identificado pelo seu Handle(Edit.Handle); depois o tipo da mensagem(EM_SETMARGINS), qual margem(EC_LEFTMARGIN) e quantos pixels.É claro que para cada tipo de mensagem existem tipos de parâmetros diferentes.E também cada tipo de controle aceita certos tipos de mensagens e outros não.No tipo EM_SETMARGINS o Windows já redesenha o controle, de modo que nem é preciso efeetuar o Repaint do TEdit.Bom, acho que é mais ou menos isso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Julho 8, 2004 Autor Denunciar Share Postado Julho 8, 2004 Entendido e satisfeito, s3c, acho que não só eu (que não tenho experiência com o delphi),mas muitos devem ter aprendido muito com este tópico.Paulo Nobre Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Paulo Nobre
Desculpem se a pergunta é idiota, mas como faço para centralizar o conteúdo do edit?
Obrigado
Paulo Nobre
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.