Lazreport Bild auf 2 Seiten

Rund um die LCL und andere Komponenten
Antworten
JosefKoller
Beiträge: 115
Registriert: Sa 17. Mär 2007, 10:53

Lazreport Bild auf 2 Seiten

Beitrag von JosefKoller »

Hallo,

ich hab ein image.picture, daß ich so lade:

Code: Alles auswählen

 
procedure Tfzuchtkalueber.frRepPrintKalGrafikEnterRect(Memo: TStringList;
  View: TfrView);
begin
  if View.Name = 'Picture1' then
  begin
    (View as TfrPictureView).Picture.Bitmap.Assign(Image10.Picture.Bitmap);
  end;
end;
 
Auf der "Zeichenfläche" des frReport hab ich ein Masterband und darauf eben das Picture1. Beides füllt die ganze Seite (A4).

Nur, daß Bild ist größer als eben diese eine Seite. Es sollte auf der nächsten Seite weitergezeichnet werden.

Geht das irgendwie? Oder muß ich das gegebene bild (TImage) selbst an passender Stelle teilen und die jeweiligen Teile übergeben?

Danke.

Josef

JosefKoller
Beiträge: 115
Registriert: Sa 17. Mär 2007, 10:53

Re: Lazreport Bild auf 2 Seiten

Beitrag von JosefKoller »

Hallo,

da, so scheint es, nimmt eine Lösung parat hat, hab ich nun das "große Bild" jeweils in so viele Abschnitte geteilt, daß jeweils ein Abschnitt auf eine DIN A4 Seite paßt.

Die Seiten des Reports erzeuge ich je nach Anzahl der Abschnitte.

Nur, es werden bei der manuellen Gestaltung etliche Objekte (tfrMemoView, tfrPictureview) erzeugt. Werden diese Objekte z. B. beim Schließen des "Prieview-Fensters "gefreet" oder muß ich selbst wieder für die Freigabe des Speichers sorgen?

Und vor allem, wo und wie finde ich diese Objekte, um sie auf "free" zu setzen?

Zum Erzeugen der Seiten verwende ich folgenden Code:

Code: Alles auswählen

 
var
  kopfmemo: TfrMemoView;
  pic: TfrPictureView;  
begin
  frRepPrintKalenderGrafik.Clear;
  for i := Low(memArr) to High(memArr) do  //die "Bildabschnitte" sind in einem Array of TBitmap gespeichert
  begin
    frRepPrintKalenderGrafik.Pages.Add();
    frRepPrintKalenderGrafik.Pages.Pages[i].Name := 'Seite' + IntToStr(i);
 
    kopfmemo := TfrMemoView.Create(frRepPrintKalenderGrafik.Pages.Pages[i]);
    kopfmemo.Name := 'kopfmemo' + IntToStr(i);
    kopfmemo.Memo.Text := 'grafische Auswertung der Zuchtkalendereinträge';
    kopfmemo.Top := 20;
    kopfmemo.Left := 0;
    kopfmemo.Height := 20;
    kopfmemo.Width := 752;
    kopfmemo.Font.Style := [fsBold];
    kopfmemo.Alignment := taCenter;
 
    pic := TfrPictureView.Create(frRepPrintKalenderGrafik.Pages.Pages[i]);
    pic.Name := 'pic'+intostr(i);
    pic.Top := 78;
    pic.Left := 20;
    pic.Width := 712;
    pic.Height := 971;
    pic.Picture.Bitmap.Assign(memArr[i]);
  end;
 
  frRepPrintKalenderGrafik.ShowReport;   
end;  
 


Danke.

Josef

Antworten