AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi QuickReport - Nur schwarzer Balken anstelle der Grafik
Thema durchsuchen
Ansicht
Themen-Optionen

QuickReport - Nur schwarzer Balken anstelle der Grafik

Ein Thema von NetSonic · begonnen am 11. Jun 2007 · letzter Beitrag vom 11. Jun 2007
Antwort Antwort
NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#1

QuickReport - Nur schwarzer Balken anstelle der Grafik

  Alt 11. Jun 2007, 08:18
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: QuickReport - Nur schwarzer Balken anstelle der Grafik

  Alt 11. Jun 2007, 08:38
Hallo,

es handelt sich wahrscheinlich um einen bekannten Fehler in QReport. Der Hersteller bietet auf seinen Seiten folgenden Patch an: Black Box Image Problem

Grüße vom marabu
  Mit Zitat antworten Zitat
NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#3

Re: QuickReport - Nur schwarzer Balken anstelle der Grafik

  Alt 11. Jun 2007, 10:18
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:
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;
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...
  Mit Zitat antworten Zitat
kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: QuickReport - Nur schwarzer Balken anstelle der Grafik

  Alt 11. Jun 2007, 10:49
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
Udo Treichel
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#5

Re: QuickReport - Nur schwarzer Balken anstelle der Grafik

  Alt 11. Jun 2007, 11:27
Zitat von kretabiker:
Ü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.
OT: Was benutzt Du denn seitdem?

Grüße, Messie
  Mit Zitat antworten Zitat
kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: QuickReport - Nur schwarzer Balken anstelle der Grafik

  Alt 11. Jun 2007, 11:38
Hi messie,

Zitat:
OT: Was benutzt Du denn seitdem?
Wir haben die Umstellung von D5 auf TurboDelphi genutzt und QR gegen FastReports Pro ausgetauscht. Dafür mußten 30+ teilweise recht komplexe Reports umgestellt werden, was den Großteil der Umstellungsarbeiten verursacht hat. Aber auch wenn die FR so ihre Macken für Entwickler haben, beim Kunden traten bislang keine Probleme auf - und alle Kunden sind froh, dass endlich Logos immer richtig ausgedruckt werden...

Greetings

Udo
Udo Treichel
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz