Texto em duas linhas em Qrlabel
Boa noite,
Gostaria da ajuda de vocês para resolver este problema de justificar um texto no Delphi.
Estou utilizando o delphi7 onde já fiz um sistema para uma empresa. O Problema está em como fazer que o texto impresso, estou utilizando o Qrprinter, fique em duas linhas, a empresa já tem um modelo de recibo pré-impresso, ela já tem milhares de recibo impresso. Aqui que mora o problema:
O recibo traz o cabeçalho, etc.
O problema vem a seguir:
Recebi do Sr(a). XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
A importância de R$ (0.000,00) XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Referente aos serviços prestados de XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Pinheiro, 23 de novembro de 2010.
_________________________________________________
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
A questão é como faço para o recibo chegar nesse formato, ou seja, ter a quebra de linha referente a importância e a quebra de linha em relação ao tipo de serviço na ultimas 5 linhas.
A gradeço muito a quem puder mim ajudar, desde de já.
Joaci Queiroz
Curtidas 0
Respostas
Leonardo Xavier
23/11/2010
Verifique nas propriedades deste componente o nome Worwrap e verifique se a mesma esta como true (tem que estar como true)
GOSTEI 0
Joaci Queiroz
23/11/2010
Desculpe pessoal, é um QRmemo, e acho que não mim expressei bem, não que não fique em duas linhas é que não estou conseguindo justificar o texto. tipo em um padrão word.
GOSTEI 0
Leonardo Xavier
23/11/2010
Desculpe pessoal, é um QRmemo, e acho que não mim expressei bem, não que não fique em duas linhas é que não estou conseguindo justificar o texto. tipo em um padrão word.
Tente o seguinte:
Justificar texto Declare a Unit RichEdit no USES. Use a procedure assim: Justificar(QrMemo1); procedure Justificar(Const QRMEMO: TQRMemo); const WM_USER = $400; EM_EXSETSEL = (WM_USER + 55); EM_SETTYPOGRAPHYOPTIONS = (WM_USER + 202); EM_GETTYPOGRAPHYOPTIONS = (WM_USER + 203); TO_ADVANCEDTYPOGRAPHY = $1; mZERO = $0; var x :tparaformat; L :LongInt; cp :charrange; begin x.cbSize := sizeof(x); if SelLength = 0 then begin cp.cpMin := 0; cp.cpMax := length(QRMEMO.Lines.Text); SendMessage(QRMEMO.Handle,EM_EXSETSEL,mZERO,LPARAM(@cp)); end; L := SendMessageA(H,EM_SETTYPOGRAPHYOPTIONS, TO_ADVANCEDTYPOGRAPHY, TO_ADVANCEDTYPOGRAPHY); if L = 1 then begin SendMessageA(QRMEMO.Handle, EM_GETTYPOGRAPHYOPTIONS, mZERO, mZERO); SendMessage(QRMEMO.Handle, EM_GETPARAFORMAT, mZERO, LPARAM(@x)); x.dwMask := PFM_ALIGNMENT; x.wAlignment := PFA_JUSTIFY; SendMessage(QRMEMO.Handle, EM_SETPARAFORMAT, mZERO, lparam(@x)); end; cp.cpMin := 0; cp.cpMax := 0; SendMessage(QRMEMO.Handle,EM_EXSETSEL,mZERO,lparam(@cp)); WordWrap := true; end;
qualquer duvida posta ai. Abraços
GOSTEI 0