Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Autopreencher Edit com pontos assim: [Nome........]


Aleksander

Pergunta

Boa tarde amigos, como devo fazer para autopreencher o restante do Edit com pontos.

Por exemlo:

Tenho um edit com MaxLength 100:

_________________________

Nome

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Gostaria que usando o evento OnExit ficasse assim:

_________________________

Nome....................................

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Grato pela atenção.

Editado por Aleksander
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Boa tarde amigos, como devo fazer para autopreencher o restante do Edit com pontos.

Por exemlo:

Tenho um edit com MaxLength 100:

_________________________

Nome

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Gostaria que usando o evento OnExit ficasse assim:

_________________________

Nome....................................

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Grato pela atenção.

tenta isso...

nomedocampo.text:= nomedocampo.text + '..................';

no OnExit dele

nomedocampo se refere ao nome que você atribuiu ao componente que esta usando, no caso você mensionou um Edit.

a quantidade de pontos é você quem decide.

aqui funcionou. é uma maneira bem simples de fazer oque você pediu.

abraço

Editado por K!ko
Link para o comentário
Compartilhar em outros sites

  • 0
como devo fazer para autopreencher o restante do Edit com pontos.

vai ai o codigo para isto

function ReplicaStr(const S: string; const Len: integer): string;
begin
  Result := '';
  while Length(Result) < Len do
  Result := Result + S;
  Result := Copy(Result, 1, Len);
end;

procedure TForm1.Button1Click(Sender: TObject);
var n : integer;
begin
   n := edit1.MaxLength - Length(trim(edit1.text));
   edit1.text := trim(edit1.text) + ReplicaStr('.',n);
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Boa tarde amigos, como devo fazer para autopreencher o restante do Edit com pontos.

(...)

Gostaria que usando o evento OnExit ficasse assim:

_________________________

Nome....................................

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Aleksander, até pode ficar legal visualmente, mas lembro que ao final, se for utilizar o conteúdo digitado apenas, terá que remover todos estes pontos. Será que vale à pena?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

nomedocampo.text:= nomedocampo.text + '..................';
Olá Kiko, sua dica funciona perfeitamente no entanto o valor de ('.......') é fixo, então se o texto variar de tamanho pode não preencher totalmente o Edit ou exceder o espaço. Veja no código do Jhonas que o preenchimento é automático independente do tamanho do texto tornando-se assim mais adequado, sendo assim agradeço a você Kiko pela contribuição. Obrigado.
function ReplicaStr(const S: string; const Len: integer): string;
begin
  Result := '';
  while Length(Result) < Len do
  Result := Result + S;
  Result := Copy(Result, 1, Len);
end;

procedure TForm1.Button1Click(Sender: TObject);
var n : integer;
begin
   n := edit1.MaxLength - Length(trim(edit1.text));
   edit1.text := trim(edit1.text) + ReplicaStr('.',n);
end;

Jhonas, funcionou!

Obrigado.

Aleksander, até pode ficar legal visualmente, mas lembro que ao final, se for utilizar o conteúdo digitado apenas, terá que remover todos estes pontos. Será que vale à pena?

Micheus, a finalidade do uso do texto do campo Edit é a seguinte, este texto é enviado para um arquivo de texto e o pontilhado serve para deixar as linhas todas com o mesmo tamanho mas teve um pequeno problema, não atentei para o detalhe que, alguns caracteres tem tamanhos diferentes e por isso quando uso 3 campos Edit no final da linha do arquivo de texto o alinhamento do lado direito não fica igual.

Veja abaixo, apesar de ser apenas um caracatere em cada linha não ficou alinhado no final.

W......

A.....

I.....

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Micheus, a finalidade do uso do texto do campo Edit é a seguinte, este texto é enviado para um arquivo de texto e o pontilhado serve para deixar as linhas todas com o mesmo tamanho mas teve um pequeno problema, não atentei para o detalhe que, alguns caracteres tem tamanhos diferentes e por isso quando uso 3 campos Edit no final da linha do arquivo de texto o alinhamento do lado direito não fica igual.

Veja abaixo, apesar de ser apenas um caracatere em cada linha não ficou alinhado no final.

W......

A.....

I.....

Correto.

Na verdade as linhas terão o mesmo tamanho sim, pelo menos em número de caracteres. Vai do uso efetivo que você fará disso.

Mas a questão visual, depende apenas da fonte que você estará utilizando. Por exemplo, se você abrir no Word ou qualquer outro editor que lhe permita modificar o tipo da fonte, basta optar por COURIER em que cada caracter tem largura fixa em número de pixels. Já se você abrir em um editor no modo caracter (tipo, editores do tempo do DOS, como o Edit.com), provavelmente não haverá problemas.

Quanto a este tópico, posso considerá-lo resolvido?

Abraços

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...