Quebra textos e cria frases do tamanho especificado, com um detalhe (não reparte as palavras) a função avalia se a palavra seguinte vai caber na frase caso contrario inclui na frase seguinte.
Fiz essa função na necessidade de atender regras de tamanho em comentarios de nota fiscal.
Function QuebraTextString(Texto : String; Largura : Integer):TStringList;
var
Original, Quebrado : TStringList;
i, x, esp : integer;
frase : String;
begin
Original := TStringList.Create;
Quebrado := TStringList.Create;
esp := Largura;
sBreakApart(Texto, ' ', Original);
frase := '';
for i := 0 to Original.Count-1 do begin
if Length(frase) = esp then begin
Quebrado.Add(frase);
frase := '';
end;
if( Length(frase + ' ' +Original.Strings[i]) > esp) then begin
Quebrado.Add(frase);
frase := '';
end;
frase := frase + ' '+Original.Strings[i];
if i = Original.Count-1 then begin
Quebrado.Add(frase);
end;
end;
result:= Quebrado;
end;
Fiz essa função na necessidade de atender regras de tamanho em comentarios de nota fiscal.
Function QuebraTextString(Texto : String; Largura : Integer):TStringList;
var
Original, Quebrado : TStringList;
i, x, esp : integer;
frase : String;
begin
Original := TStringList.Create;
Quebrado := TStringList.Create;
esp := Largura;
sBreakApart(Texto, ' ', Original);
frase := '';
for i := 0 to Original.Count-1 do begin
if Length(frase) = esp then begin
Quebrado.Add(frase);
frase := '';
end;
if( Length(frase + ' ' +Original.Strings[i]) > esp) then begin
Quebrado.Add(frase);
frase := '';
end;
frase := frase + ' '+Original.Strings[i];
if i = Original.Count-1 then begin
Quebrado.Add(frase);
end;
end;
result:= Quebrado;
end;
Nenhum comentário:
Postar um comentário