LCL: Fix band height evaluation in ControlBar. Now single row snaps to inner control height.

This commit is contained in:
alexrayne 2022-05-22 19:12:04 +03:00 committed by Juha
parent e82e8c312e
commit 3b4fc416a8

View File

@ -133,8 +133,12 @@ begin
end; end;
function TCustomControlBar.CalcBandHeightSnapped(AControl: TControl): Integer; function TCustomControlBar.CalcBandHeightSnapped(AControl: TControl): Integer;
var
rowsz, rowcnt: integer;
begin begin
Result := (1 + trunc((AControl.Height + 2 * cBandBorderV) div RowSize)) * RowSize; rowsz := RowSize;
rowcnt := (AControl.Height - (2 * cBandBorderV) + (rowsz-1)) div rowsz;
Result := rowcnt * rowsz;
end; end;
function TCustomControlBar.CalcInnerBevelWidth: Integer; function TCustomControlBar.CalcInnerBevelWidth: Integer;
@ -485,7 +489,7 @@ begin
for i := 0 to ControlCount - 1 do begin for i := 0 to ControlCount - 1 do begin
aBand := TCtrlBand.Create; aBand := TCtrlBand.Create;
aBand.Control := Controls[i]; aBand.Control := Controls[i];
aBand.Height := CalcBandHeight(Controls[i]); aBand.Height := CalcBandHeight(aBand.Control);
aBand.Width := cFullGrabber + Controls[i].Width + cBandBorderH; aBand.Width := cFullGrabber + Controls[i].Width + cBandBorderH;
aBand.Top := Controls[i].Top - (aBand.Height - Controls[i].Height) div 2; aBand.Top := Controls[i].Top - (aBand.Height - Controls[i].Height) div 2;
aBand.Left := Controls[i].Left - aIndent; aBand.Left := Controls[i].Left - aIndent;