![]() |
QuickReport - Nur schwarzer Balken anstelle der Grafik
Guten Morgen!
Folgende Problemstellung: Ich verwende Borland Delphi 5 und die mitgelieferten Quick-Reports. Im Page-Header nutze ich ein TQRImage, in dass ich vor dem Ausdruck eine Grafik aus einer Datei (BMP / JPG) lade. Nun passiert es gelegentlich auf verschiedenen Rechner und Druckern ohne erkennbaren Grund, dass anstelle der Grafik einfach nur ein komplett schwarzer Balken gedruckt wird! Ich kann nich nachvollziehen waron es liegt, habe die Dateigröße schon geprüft, aber 100kb dürften nicht zu viel sein, oder? Es passiert auch, wenn ich die Grafik schon fest in den Page-Header einbinde und dass Programm dann ausführe. Hat dazu vielleicht jemand eine Idee? Gruß, NetSonic |
Re: QuickReport - Nur schwarzer Balken anstelle der Grafik
Hallo,
es handelt sich wahrscheinlich um einen bekannten Fehler in QReport. Der Hersteller bietet auf seinen Seiten folgenden Patch an: ![]() Grüße vom marabu |
Re: QuickReport - Nur schwarzer Balken anstelle der Grafik
OK, da steht folgendes....
Black Box Image Bug : ===================== Changes to File QRCtrls.pas - remove all references to PrintBitmap, use stretchdraw only. Replace the current code with this - If you're using TQRGrImage, make the same changes to TQRGrImage.Print in GrImgCtrl.pas
Delphi-Quellcode:
allerdings gibt es die datei "QRCtrls.pas" bei mir nicht! liegt es vielleicht daran, dass es sich um die mitgelieferten Quick Report Komponenten handelt und ich diese nicht nachträglich eingefügt habe oder welche datei muss ich verändern. Stehe heute glaube ich etwas neben mir...
procedure TQRImage.Print(OfsX,OfsY : Integer);
var Dest : TRect; DC, SavedDC : THandle; begin Dest.Top := QRPrinter.YPos(OfsY + Size.Top); Dest.Left := QRPrinter.XPos(OfsX + Size.Left); Dest.Right := QRPrinter.XPos(OfsX + Size.Width + Size.Left); Dest.Bottom := QRPrinter.YPos(OfsY + Size.Height + Size.Top); if Stretch then begin // remove all references to PrintBitmap, use stretchdraw only QRPrinter.Canvas.StretchDraw(Dest, Picture.Graphic); end else begin IntersectClipRect(QRPrinter.Canvas.Handle, Dest.Left, Dest.Top, Dest.Right, Dest.Bottom); DC := GetDC(QRPrinter.Canvas.Handle); SavedDC := SaveDC(DC); Dest.Right := Dest.Left + round(Picture.Width / Screen.PixelsPerInch * 254 * ParentReport.QRPrinter.XFactor); Dest.Bottom := Dest.Top + round(Picture.Height / Screen.PixelsPerInch * 254 * ParentReport.QRPrinter.YFactor); if Center then OffsetRect(Dest, (QRPrinter.XSize(Size.Width) - round(Picture.Width / Screen.PixelsPerInch * 254 * ParentReport.QRPrinter.XFactor)) div 2, (QRPrinter.YSize(Size.Height) - round(Picture.Height / Screen.PixelsPerInch * 254 * ParentReport.QRPrinter.YFactor)) div 2); //and again. QRPrinter.Canvas.StretchDraw(Dest, Picture.Graphic); RestoreDC(DC, SavedDC); SelectClipRgn(QRPrinter.Canvas.Handle, 0); end; inherited Print(OfsX,OfsY); end; |
Re: QuickReport - Nur schwarzer Balken anstelle der Grafik
Hi,
das ist in der Tat ein Problem mit den Standard-QR-Komponenten unter D5; die auf der QR-Website beschriebenen Workarounds beziehen sich auf die QR-Pro-Versionen, so dass sie dem Standard-Anwender nicht helfen. Es gibt ein paar Workarounds im Netz, die mehr schlecht als recht helfen. - Nur Grafiken mit weniger als 256 Farben verwenden - Der Bereich links oben der Grafik sollte als Farbe Rein-Weiß verwenden - Irgendwas war da noch mit Transparenz, glaube ich, aber das fällt mir nicht mehr ein Ein Versuch mit Google könnte dich weiterbringen - insbesondere auf ältere Einträge aus den Jahren 1999-2002 achten -, aber ohne die Pro-Version ist das alles nur gefrickel. Übrigens war das ein Grund, warum wir nach mehren Jahren die QRs aus unseren Projekten geworfen haben, denn das Problem ist einem Kunden nur sehr schwer zu erklären. Greetings Udo |
Re: QuickReport - Nur schwarzer Balken anstelle der Grafik
Zitat:
Grüße, Messie |
Re: QuickReport - Nur schwarzer Balken anstelle der Grafik
Hi messie,
Zitat:
Greetings Udo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz