Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Quickrport: Hintergrundbild ist immer vorne (https://www.delphipraxis.net/208974-quickrport-hintergrundbild-ist-immer-vorne.html)

BlueStarHH 7. Okt 2021 13:05

Quickrport: Hintergrundbild ist immer vorne
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo zusammen,

ich habe einen Quickreport, der ein Hintergrundbild haben soll (rot im Bildschirmfoto unten). Dieses soll hinter allen anderen Objekten liegen. Parent ist daher der Quickreport. Dadrüber soll ein Band liegen, das hier z.B. ein grünes Bild enthält. Parent von dem grünen Bild ist daher das Band. Ganz im Vordergrund ein blaues Bild, dass alle anderen Objekte überlagert. Das hat auch den Quickreport als Parent.

In der IDE sieht es so aus, wie ich es haben möchte. Linkes Beispiel im Bildschirmfoto hier.
Lasse ich mir mit Preview() eine Druckvorschau anzeigen, stimmt die Reihenfolge nicht mehr. Rechts im Bildschirmfoto.
Was kann ich tun?

Angehängt ist ein komplette Demo, wo statt Bildern Shapes verwendet werden, damit das Demo möglichst klein ist.

Anhang 54453

bcvs 7. Okt 2021 15:13

AW: Quickrport: Hintergrundbild ist immer vorne
 
So funktioniert das anscheinend nicht.

Aber:
Der Quickreport hat die Eigenschaft BackImageControl. Das ist ein String. Da kannst du den Namen eines TQRImage reinschreiben, dass dein Hintergrundbild enthält. Das bleibt dann auch im Hintergrund.

BlueStarHH 7. Okt 2021 18:11

AW: Quickrport: Hintergrundbild ist immer vorne
 
Zitat:

Zitat von bcvs (Beitrag 1495809)
So funktioniert das anscheinend nicht.

Aber:
Der Quickreport hat die Eigenschaft BackImageControl. Das ist ein String. Da kannst du den Namen eines TQRImage reinschreiben, dass dein Hintergrundbild enthält. Das bleibt dann auch im Hintergrund.

Danke für den Hinweis. BackImageControl sieht mir nach einem Workaround aus, den die Quickreport-Entwickler eingebaut haben, um das von mir angesprochene Problem zu lösen. Hilft wohl in den meisten Fällen. Mir aber leider nicht, da ich mehrere Bilder habe, die an unterschiedlichen Positionen eingefügt werden. Und: Das ganze wird auch für andere QrControls wie z.B. QrLabel oder QrRichText benötigt.

BerndS 8. Okt 2021 07:52

AW: Quickrport: Hintergrundbild ist immer vorne
 
Solltest du die Quellen von QR haben, sollte es relativ einfach möglich sein, das in
TCustomQuickRep.NewPage und TCustomQuickRep.EndPage anzupassen.

Dazu würde ich aus FBackgroundcontrol eine TList<TQRPrintable> machen und in den beiden Methoden das entsprechend anpassen.

Die Liste könnte man dann entweder von Hand füllen, oder das über die Komponentennamen regeln. (z.B. imBackgroundimage1, imBackgroundimage2 usw.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 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