Função para Abreviar Nomes em Delphi
Função útil para a abreviação de nomes.
Crie um Formulário e adicione um Button e um Edit.
Função:
function AbreviarNome(Nome: String): String; var Nomes: array[1..20] of string; i, TotalNomes: Integer; begin Nome := Trim(Nome); Result := Nome; {Insere um espaço para garantir que todas as letras sejam testadas} Nome := Nome + #32; {Pega a posição do primeiro espaço} i := Pos(#32, Nome); if i > 0 then begin TotalNomes := 0; {Separa todos os nomes} while i > 0 do begin Inc(TotalNomes); Nomes[TotalNomes] := Copy(Nome, 1, i - 1); Delete(Nome, 1, i); i := Pos(#32, Nome); end; if TotalNomes > 2 then begin {Abreviar a partir do segundo nome, exceto o último.} for i := 2 to TotalNomes - 1 do begin {Contém mais de 3 letras? (ignorar de, da, das, do, dos, etc.)} if Length(Nomes[i]) > 3 then {Pega apenas a primeira letra do nome e coloca um ponto após.} Nomes[i] := Nomes[i][1] + '.'; end; Result := ''; for i := 1 to TotalNomes do Result := Result + Trim(Nomes[i]) + #32; Result := Trim(Result); end; end; end;
Como usar?
Adicione o código no botão:
procedure TForm1.Button1Click(Sender: TObject); var Nome : String; begin Nome := Edit1.Text; ShowMessage(AbreviarNome(Nome)); end;