Código de exemplo para você que precisa remover de uma string espaços extras, como espaços duplos, por exemplo.
function RetirarEspacosExtras(var psTexto: string): string;
var
nCont, nTamanhoDoTexto: integer;
begin
// A função Length vai retornar o tamanho total da string do
//parâmetro sTexto e atribuir à variável nTamanhoDoTexto
nTamanhoDoTexto := Length(psTexto);
// Aqui será realizado um laço de repetições até atingir o tamanho
// total de caracteres da string. Faz-se necessário o uso de
// laços, pois a função StringReplace ao encontrar o primeiro
// espaço duplo, vai trocar para apenas 1 e sairá do método
for nCont := 0 to nTamanhoDoTexto - 1 do
psTexto := StringReplace(psTexto, ' ', ' ', [rfReplaceAll]);
result := psTexto;
end;
Exemplo de como usar deixaria a postagem mais completa.
ResponderExcluirClaudio, boa tarde.
ExcluirEstá incorreto mesmo o método, mas eu estou achando que é o Blogger que está desconsiderando 2 espaços no 2º parâmetro.
Até no primeiro comentário que tentei fazer ele removeu e acabei apagando.
Para corrigir esse problema no método, coloque no 2º parâmetro do StringReplace 2 espaços ao invés de 1.
O terceiro continua com 1 espaço.
Vou ajustar na publicação o método.
Obrigado pelo comentário.
Agora funcionou como o esperado.
ResponderExcluirNo evento KeyPress do edit declarei a variável s como string, atribui a ela o valor do edit. Aí a função funcionou, porém voltando para o início da string, más o SelStart resolveu, ficou assim.
var
s:string;
begin
s:= Edit1.Text;
Edit1.Text:= RetirarEspacosExtras(s);
Edit1.SelStart:= Length(s);
end;
Que bom que deu certo, Claudio.
ExcluirObrigado por compartilhar a sua solução. ;)
Outra coisa legal que eu achei que poderia melhorar a função, é colocar no final da função
ResponderExcluirA função trim ou trimLeft
result:= trimLeft(psTexto);
Eu dei uns espaços no início da frase, e retirou ou espaços em excesso, más deixou um, então assim ele tira todos os espaços a esquerda, ficou legal.