Nicka_Grey
Хороший фикс.
Но можно решить это другим способом, более корректным:
Код:
//frxClass.pas
procedure TfrxReportPage.AlignChildren;
var
i: Integer;
c: TfrxComponent;
begin
Width := (FPaperWidth - FLeftMargin - FRightMargin) * fr01cm;
Height := (FPaperHeight - FTopMargin - FBottomMargin) * fr01cm;
inherited;
for i := 0 to Objects.Count - 1 do
begin
c := Objects[i];
if c is TfrxBand then
begin
if TfrxBand(c).Vertical then
c.Height := (FPaperHeight - FTopMargin - FBottomMargin) * fr01cm - c.Top
else
begin //beginfix
c.Width := Width - c.Left;
c.Height := Height - c.Top;
end; //endfix
if c.Width > Width then
c.Width := Width;
// c.Height := Height; //new_fix - можно убрать
c.AlignChildren;
end;
end;
UpdateDimensions;
end;
Хороший фикс.
Но можно решить это другим способом, более корректным:
Код:
//frxClass.pas
procedure TfrxReportPage.AlignChildren;
var
i: Integer;
c: TfrxComponent;
begin
Width := (FPaperWidth - FLeftMargin - FRightMargin) * fr01cm;
Height := (FPaperHeight - FTopMargin - FBottomMargin) * fr01cm;
inherited;
for i := 0 to Objects.Count - 1 do
begin
c := Objects[i];
if c is TfrxBand then
begin
if TfrxBand(c).Vertical then
c.Height := (FPaperHeight - FTopMargin - FBottomMargin) * fr01cm - c.Top
else
begin //beginfix
c.Width := Width - c.Left;
c.Height := Height - c.Top;
end; //endfix
if c.Width > Width then
c.Width := Width;
// c.Height := Height; //new_fix - можно убрать
c.AlignChildren;
end;
end;
UpdateDimensions;
end;