SLICK 0 Denunciar post Postado Dezembro 16, 2004 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
Eduardo Valentim 0 Denunciar post Postado Dezembro 16, 2004 Olá Slick, Essa é uma tarefa árdua, faz tempo que passei por esse problema e só conheço um componente que alinha justificado corretamente no Delphi, é o RichView da TRichView. Dá uma olhada: Compartilhar este post Link para o post Compartilhar em outros sites
Aroldo Zanela 0 Denunciar post Postado Dezembro 17, 2004 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
Dopi 0 Denunciar post Postado Dezembro 17, 2004 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