Guest Isabela Postado Maio 4, 2007 Denunciar Share Postado Maio 4, 2007 Alguém por me explicar como faço pra colocar o visualizar impressão em um wordpad feito em Delphi? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Maio 4, 2007 Denunciar Share Postado Maio 4, 2007 Alguém por me explicar como faço pra colocar o visualizar impressão em um wordpad feito em Delphi?Isabela, não seria o caso de utilizar um componente tipo o quickreport para mostrar seu texto?! :unsure: Provavelmente você está utilizando um componente TRichEdit para o editor, não? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Erso Postado Maio 5, 2007 Denunciar Share Postado Maio 5, 2007 (editado) Boa Micheus!!!Isabela você pode fazer assim!!1 - coloca um QuickRep no seu form2 - vai nas propriedades do QuickRep em bands e coloque Has Title = true(isso cria uma banda titulo pra você)3- coloca o componente QRRichText(da banda QReport) dentro da banda titlee coloque esse comando em um buttonprocedure TForm1.Button1Click(Sender: TObject);Varms :TMemoryStream;beginms := TMemoryStream.Create;RichEdit1.Lines.SaveToStream(ms);ms.Position := 0;QRRichText1.Lines.LoadFromStream(ms);ms.Free;QuickRep1.Preview;end;esse codigo salva o conteudo do seu RichEdit1 em uma variavel MemoryStream e depois oQRRichText1 carrega o conteudo dessa variavel, dessa forma o seu teste mantem a formatação!!ps: você pode colocar o seu QuickRep em um formulario aparte(Fica mais proficional). Editado Maio 5, 2007 por Erso Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Maio 6, 2007 Denunciar Share Postado Maio 6, 2007 Erso, este procedimento (utilizar um TMemoryStream - intermediário) resolve o "bug" que há no componente TQRRichEdit que ao ser associado a um TRichEdit, herda também sua cor (a do fundo) - assim se a cor de fundo do RichEdit é clWindow, ao visualizar, o texto o fundo da área aparecerá nesta cor, independente de você ter configurado com clWhite a cor do TQRRichEdit.Se isto não for um problema, e seguindo sua sugestão de utilizar outro form para alojar o QuickReport (digamos, FrmPreviewRTF), então bastaria apenas criar um procedimento neste form em que você recebe o TRichEdit do editor e no corpo do procedimento atribui o mesmo a propriedade ParentRichEdit do TQRRichEdit. Na visualização a área do texto terá a cor da do fundo do RichEdit do editor, mas na impressão este fundo não será impresso - fica "branco".No evento OnClick do botão preview na tela do editor// estou também supondo que o FrmPreviewRTF será criado em tempo de execução procedure TEditor.BtnPreviewClick(Sender :TObject); begin FrmPreviewRTF := TFrmPreviewRTF.Create(Self); try FrmPreviewRTF.PreviewRTF(RichEdit1); finally FrmPreviewRTF.Free; end; end; Procedimento no form TFrmPreviewRTF para visualização do textotype TFrmPreviewRTF = class(TForm) ... public procedure PreviewRTF(RichEdit :TRichEdit); end; ... procedure TFrmPreviewRTF.PreviewRTF(RichEdit :TRichEdit); begin QRRichText1.ParentRichEdit := RichEdit; QuickRep1.Preview; end;Isabela, algumas dicas com relação a construção do preview no QuickReport.:- Adicione uma banda detalhe sem preocupar-se com sua altura - pode ser mínima;- Coloque o TQRRichEdit nela e o importante é que você ajuste a largura; A altura, pode deixar mínima, mas habilite a propriedade AutoStretch (True);- Se você vai configurar margens e similares, você pode alterar esses parâmetros no quick sem problemas, mas lembre-se de mudar a largura do TQRRichEdit de acordo com a largura da banda detalhe (para evitar cortes ou erros na formatação);Boa sorte. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Isabela
Alguém por me explicar como faço pra colocar o visualizar impressão em um wordpad feito em Delphi?
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.