Einzelnen Beitrag anzeigen

bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#13

AW: Zugriff auf dynamisch erstellte Komponente

  Alt 21. Jul 2011, 09:31

Nun möchte ich wegen der besseren Lesbarkeit mit Hilfe von Procedure "BeforePrint" (s.u.) Tabellierpapier simulieren.
Beim Entwurf von QReport (zur Designzeit) gibt es keine Probleme.
In meinem Testprogramm jedoch gibt es zur Designzeit noch keine Komponente "DetailBandXXX". Ein weiteres Problem ist, dass mit jedem
neuen Aufruf von "GridRepPreview(Grid : TDBGrid)" wieder ein neues
Detailband erzeugt wird (und später freigegeben) wird.
Ich habe es schon mit TComponentList bzw. mit TObjectList probiert.
Kein Erfolg. Da ich ein reiner Hobbyprogrammierer bin wäre ich für
ein paar Anregungen oder Lösungsansätze sehr dankbar.

Wendelin
Wenn ich dich richtig verstehe, hast du schon eine funktionierende BeforePrint-Methode, die das Tabellierpapier simuliert. Die must du nur dem dynamisch erzeugten DetailBand zur Laufzeit zuweisen.

Delphi-Quellcode:
  GridRep.Bands.DetailBand.Height := Abs(Grid.Font.Height) + 10;
  GridRep.Bands.DetailBand.BeforePrint:=GridRepBeforePrint;


// Für Tabellierpapier
procedure TGridReport.GridRepBeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  If GridRep.Bands.DetailBand.Color = clWhite THEN
    GridRep.Bands.DetailBand.Color := clMoneyGreen ELSE
    GridRep.Bands.DetailBand.Color := clWhite;
end;
  Mit Zitat antworten Zitat