Texto em duas linhas em Qrlabel

Delphi

23/11/2010

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

Joaci Queiroz

Curtidas 0

Respostas

Leonardo Xavier

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

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

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
POSTAR