QReport com Canvas - Impressão diagonal
28/09/2004
0
É o seguinte...
Tenho um relatório q é uma transferência escolar, onde no local do nome das disciplinas deve aparecer o texto na vertical...coisa q não é possível no QReport , então me utilizei de desenhar o Canvas do QRImage com a seguinte função:
Onde tenho um loop para vários QRImages e displinas e etc..
O problema é : o sistema rodou assim durante anos sempre em PCs com Windows 9x e sempre funcionou perfeitamente, até o dia q me apareceu um client ecom Win 2000 e Win XP e aí o QReport pirou tudo.
Nos QRImages o texto fica horizontal com fonte muito maior ou não aparece....a cada preview é uma reação diferente, e ainda mais....outros QRLabels tb mudam configuração de Font apenas em QReports onde eu tenho desenhar Canvas em QRImages.
Já tentei de tudo....(ParentFont, deixar tudo(QRBand, Form, QReport) com mesma configuração de fonte q já funcionou mas agora não funciona mais
Gostaria da ajuda de alguem q já tenha trabalhado com algo do tipo...talvez eu esteja esquecendo algum requisito básico..
Vlw...Obrigado[color=blue:9b2ab31a1a][/color:9b2ab31a1a]
[b:9b2ab31a1a][color=red:9b2ab31a1a]Título editador pelo Moderador (AZ) - Removido: ´....pirou tudo!!´[/color:9b2ab31a1a][/b:9b2ab31a1a]
Tenho um relatório q é uma transferência escolar, onde no local do nome das disciplinas deve aparecer o texto na vertical...coisa q não é possível no QReport , então me utilizei de desenhar o Canvas do QRImage com a seguinte função:
var OldFont,NewFont : hFont; LogFont : TLogFont; i : integer; begin OldFont := Canvas.Font.Handle; i := 900; GetObject(OldFont,Sizeof(LogFont),@LogFont); LogFont.lfEscapement := i; NewFont := CreateFontIndirect(LogFont); SelectObject(QRImage19.Canvas.Handle,NewFont); TextOut(QRImage19.Canvas.Handle,5,83,PChar(´Nome da Disciplina´),Length(´Nome da Disciplina´)); (...) end;
Onde tenho um loop para vários QRImages e displinas e etc..
O problema é : o sistema rodou assim durante anos sempre em PCs com Windows 9x e sempre funcionou perfeitamente, até o dia q me apareceu um client ecom Win 2000 e Win XP e aí o QReport pirou tudo.
Nos QRImages o texto fica horizontal com fonte muito maior ou não aparece....a cada preview é uma reação diferente, e ainda mais....outros QRLabels tb mudam configuração de Font apenas em QReports onde eu tenho desenhar Canvas em QRImages.
Já tentei de tudo....(ParentFont, deixar tudo(QRBand, Form, QReport) com mesma configuração de fonte q já funcionou mas agora não funciona mais
Gostaria da ajuda de alguem q já tenha trabalhado com algo do tipo...talvez eu esteja esquecendo algum requisito básico..
Vlw...Obrigado[color=blue:9b2ab31a1a][/color:9b2ab31a1a]
[b:9b2ab31a1a][color=red:9b2ab31a1a]Título editador pelo Moderador (AZ) - Removido: ´....pirou tudo!!´[/color:9b2ab31a1a][/b:9b2ab31a1a]
Isaiasbass
Curtir tópico
+ 0
Responder
Posts
29/09/2004
Aroldo Zanela
Colega,
Verifique se consegue adaptar este fragmento para sua necessidade:
Verifique se consegue adaptar este fragmento para sua necessidade:
procedure SetFontAngle( const vAngle : integer; Canvas: TCanvas ); var LogFont: TLogFont; OldHandle: DWord; begin OldHandle:= Canvas.Font.Handle; GetObject( OldHandle, SizeOf(LogFont), @LogFont); LogFont.lfOrientation := vAngle; LogFont.lfEscapement := vAngle; LogFont.lfHeight:= -72; Canvas.Font.Handle := CreateFontIndirect(LogFont); DeleteObject( OldHandle ); end; procedure TForm1.Button1Click(Sender: TObject); begin QuickRep1.PreviewModal; end; procedure TForm1.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); var mf: TMetafile; mfc: TMetafileCanvas; begin mf := TMetafile.Create; try mfc := TMetafileCanvas.Create(mf, 0); with mfc do try SetMapMode( Handle, MM_LOMETRIC ); SetFontAngle( 2700, mfc ); TextOut( 0, 0, ´Nome da disciplina´ ); finally mfc.Free; end; QRImage1.Canvas.Draw(100,100,mf); finally mf.Free; end; end;
Responder
Clique aqui para fazer login e interagir na Comunidade :)