Hallo,
habe eben versucht das von dir vorgeschlagene nachzuvollziehen, aber ohne Erfolg. Hier was ich gemacht habe:
1. Neues
VCL Projekt, ein TfrxReport auf die Form und deinen Report geladen.
2. Button und Code zum vorbereiten/anzeigen hinzugefügt, was diese
Unit ergibt:
Delphi-Quellcode:
unit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants,
System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs, frxClass,
Vcl.StdCtrls;
type
TForm1 =
class(TForm)
frxReport1: TfrxReport;
Button1: TButton;
procedure frxReport1BeforePrint(Sender: TfrxReportComponent);
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
frxReport1.PrepareReport(true);
frxReport1.ShowPreparedReport;
end;
procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
begin
Memo2.Visible := False;
Memo3.Top := Memo1.Height;
ColumnFooter.Height := Memo1.Height + Memo3.Height;
end;
end.
Delphi kennt Memo2 usw. so nicht, da diese ja im Report sind und die BeforePrint
Umsetzung in der Form.
Ich habe dann mal versucht mittels Sender.FindObject('Memo2') usw. zu arbeiten, da bekomme
ich aber immer nil zurück.
Deinen Code muss ich mit meinen bisherigen, noch etwas beschränkten Fast Report Kenntnissen
so verstehen, als ob Memo2 usw. im Code der
Unit bekannt sein müsste, aber woher?
Kommentiere ich den Inhalt vom BeforePrint aus, bekomme ich den Report ohne Änderungen
als Vorschau angezeigt.