Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SLICK

alinhamento

Recommended Posts

alguem pode me ajudar,como alinhar justificadamente em delphi, sei como faço ainhamento à esquerda, à direita e centralizado, mas justificado nem tenho idéia, podem ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega,

 

Realmente isso não é tão simples, mas existem alternativas. No caso já mencionado, componentes de terceiros. Para impressão temos o EccJust. Outra forma menos elegante é utilizando fontes monoespaçadas (Fixedsys, Terminal, Courier, etc) e criando sua própria rotina para verificar o comprimento da linha e ajustá-la se necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sei se entendi corretamente.... Mas se você quiser ajustar apenas uma linha, dá pra usar essa funçao PADS()

 

{ Ajusta a <AString> com o tamanho de <nLen> inserindo espaços no meio,  substituindo <Separador> por n X <Caracter>  (Justificado) }function padS(AString : string; nLen : Integer; Separador : String;   Caracter : Char = ' ') : String;var StuffStr : String;    nSep, nCharSep, nResto, nFeito, Ini : Integer;begin  Result := copy(AString,1,nLen);  if Separador = Caracter then  { Troca Separador, senao fica em loop infinito }  begin     Result   := StringReplace( Result,Separador,#255,[rfReplaceAll]);     Separador:= #255;  end;    nSep   := CountStr( Result, Separador );  if nSep < 1 then  begin     Result := PadL(Result, nLen, Caracter );     exit;  end;  Result   := Trim( Result );  nCharSep := Trunc( (nLen - (Length(Result)-nSep)) / nSep );  nResto   := nLen - ( (Length(Result)-nSep) + (nCharSep*nSep) );  nFeito   := nSep;  StuffStr := StringOfChar( Caracter, nCharSep );  Ini := Pos( Separador, Result );  while Ini > 0 do  begin     Result := StuffString(Result, Ini, length(Separador),                 StuffStr + ifthen(nFeito <= nResto, Caracter, '' ) );     nFeito := nFeito - 1;     Ini := Pos( Separador, Result );  end;end;{ Retorna quantas ocorrencias de <SubStr> existem em <AString> }function CountStr(AString, SubStr : string ) : Integer;Var ini : Integer;begin  result := 0;  if SubStr = '' then exit;  ini := Pos( SubStr, AString );  while ini > 0 do  begin     Result := Result + 1;     ini    := PosEx( SubStr, AString, ini + 1 );  end;end;

[]s Daniel

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.