AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Quickreport TQrShape in TQrChildBand kopieren

Ein Thema von norwegen60 · begonnen am 26. Feb 2020 · letzter Beitrag vom 28. Feb 2020
 
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
529 Beiträge
 
Delphi 12 Athens
 
#3

AW: Quickreport TQrShape in TQrChildBand kopieren

  Alt 28. Feb 2020, 11:27
Zitat von BerndS;1458482
Hier die Anpassung in der QuickRpt.pas:
[CODE
:
function TQRCustomBand.AddPrintable(PrintableClass : TQRNewComponentClass) : TQRPrintable;
var
...
begin
...
if Assigned(FParentReport) then
aPrintable.FQRPrinter := FParentReport.QRPrinter;
end;
[/CODE]
Danke für den Tip. Jetzt funktioniert es.

Ich habe festgestellt, dass es nichts mit meinem Vorgehen zu tun hat sondern eher ein QuickReport-Bug ist.

Folgender Code läuft einwandfrei, wenn man ihn im FormCreate ausführt.
Führt man ihn dagegen in OnBeforePrint aus, funtioniert es, wenn man den TQrShape Block auskommentiert. Sobald man auch den TQrShape aktiviert, kommt es wieder zur Access-Violation
Delphi-Quellcode:
procedure TrptTest2.qrbaAnalysisBeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean);
var
  lShape: TQRShape;
  lLabel: TQRLabel;

begin
  // Funktioniert immer
  lLabel := TQRLabel.Create(self);
  lLabel.Name := 'QrLabel0001';
  lLabel.top := 5;
  lLabel.left := 10;
  lLabel.Caption := lLabel.Name;
  lLabel.Parent := qrbaAnalysis;

  // Funktioniert im FormCreate, nicht aber im OnBeforePrint
  lShape := TQRShape.Create(self);
  lShape.Name := 'QrShape0001';
  lShape.top := 5;
  lShape.left := 10;
  lShape.width := 300;
  lShape.Height := 30;
  lShape.Parent := qrbaAnalysis;
end;
Dieser Code funktioniert immer, vorausgesetzt man hat in QuickRpt.pas - TQRCustomBand.AddPrintable obige Änderung eingefügt
Delphi-Quellcode:
procedure TrptTest2.qrbaAnalysisBeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean);
var
  lShape: TQRShape;
  lLabel: TQRLabel;

begin
  // Funktioniert immer
  lLabel := TQRLabel(qrbaAnalysis.AddPrintable(TQRLabel));
  lLabel.Name := 'QrLabel0001';
  lLabel.top := 5;
  lLabel.left := 10;
  lLabel.Caption := lLabel.Name;
  lLabel.Parent := qrbaAnalysis;

  // Funktioniert auch immer
  lShape := TQRShape(qrbaAnalysis.AddPrintable(TQRShape));
  lShape.Name := 'QrShape0001';
  lShape.top := 5;
  lShape.left := 10;
  lShape.width := 300;
  lShape.Height := 30;
end;
  Mit Zitat antworten Zitat
 


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 10:11 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-2025 by Thomas Breitkreuz