Browse Source

* Patch from Pascal Riekenberg to avoid try/finally in block

git-svn-id: trunk@37503 -
michael 7 years ago
parent
commit
a171ad319e
1 changed files with 18 additions and 15 deletions
  1. 18 15
      packages/fcl-report/src/fpreport.pp

+ 18 - 15
packages/fcl-report/src/fpreport.pp

@@ -10780,26 +10780,29 @@ begin
       lBand := aBand;
       while Assigned(lBand) do
       begin
-        try
-          Exclude(overFlowActions,oaSingleBand);
-          lRTBand := CommonRuntimeBandProcessing(lBand);
-          if lRTBand=Nil then
-            Continue;
-          Result := True;
-          lHandledBands.Add(lRTBand);
-          UpdateSpaceRemaining(lRTBand, aBand.NeedsUpdateYPos);
-          if NoSpaceRemaining then
-            overFlowActions := HandleOverflowedBands(lHandledBands, aBand, lRTBand);
-          if (oaBandWithChilds in overFlowActions) then
-            break;
+        Exclude(overFlowActions,oaSingleBand);
+        lRTBand := CommonRuntimeBandProcessing(lBand);
+        if lRTBand=Nil then
+        begin
+          lBand := lBand.ChildBand;
+          Continue;
+        end;
+        Result := True;
+        lHandledBands.Add(lRTBand);
+        UpdateSpaceRemaining(lRTBand, aBand.NeedsUpdateYPos);
+        if NoSpaceRemaining then
+          overFlowActions := HandleOverflowedBands(lHandledBands, aBand, lRTBand);
+        if (oaBandWithChilds in overFlowActions) then
+          lBand:=Nil // force exit from while
+        else
+        begin
           if Assigned(lRTBand) then
             aBand.AfterPrintBand(Self, lRTBand);
-        finally
           if not (oaSingleBand in overFlowActions) then
             lBand := lBand.ChildBand;
-          if (overFlowActions<>[]) then
-            Report.FRTIsOverflowed := True;
         end;
+        if (overFlowActions<>[]) then
+          Report.FRTIsOverflowed := True;
       end; { while Assigned(lBand) }
     Until not (oaBandWithChilds in OverFlowActions);
     if (aBand is TFPReportCustomGroupHeaderBand) and