fpspreadsheet: Add new AutoExpand mode aeDefault to WorksheetGrid which expands a "small" worksheet to default size (see: http://forum.lazarus.freepascal.org/index.php/topic,35347.msg237128.html#msg237128)

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5742 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2017-02-09 18:47:02 +00:00
parent d3f2c24886
commit 2d45c4ca42

View File

@@ -38,7 +38,14 @@ type
{ TsCustomWorksheetGrid } { TsCustomWorksheetGrid }
TsAutoExpandMode = (aeData, aeNavigation); TsAutoExpandMode = (
{@@ Expands grid dimensions if a cell is written outside current grid dimensions }
aeData,
{@@ Expands grid dimensions if navigation goes outside current grid dimensions }
aeNavigation,
{@@ Expands grid dimensions to DEFAULT_ROW_COUNT and DEFAULT_COL_COUNT }
aeDefault
);
TsAutoExpandModes = set of TsAutoExpandMode; TsAutoExpandModes = set of TsAutoExpandMode;
TsHyperlinkClickEvent = procedure(Sender: TObject; TsHyperlinkClickEvent = procedure(Sender: TObject;
@@ -256,7 +263,8 @@ type
{@@ Automatically recalculate formulas whenever a cell value changes. } {@@ Automatically recalculate formulas whenever a cell value changes. }
property AutoCalc: Boolean read FAutoCalc write SetAutoCalc default false; property AutoCalc: Boolean read FAutoCalc write SetAutoCalc default false;
{@@ Automatically expand grid dimensions } {@@ Automatically expand grid dimensions }
property AutoExpand: TsAutoExpandModes read FAutoExpand write FAutoExpand; property AutoExpand: TsAutoExpandModes read FAutoExpand write FAutoExpand
default [aeData, aeNavigation, aeDefault];
{@@ Displays column and row headers in the fixed col/row style of the grid. {@@ Displays column and row headers in the fixed col/row style of the grid.
Deprecated. Use ShowHeaders instead. } Deprecated. Use ShowHeaders instead. }
property DisplayFixedColRow: Boolean read GetShowHeaders write SetShowHeaders default true; property DisplayFixedColRow: Boolean read GetShowHeaders write SetShowHeaders default true;
@@ -1036,7 +1044,7 @@ begin
FSelPen.Color := clBlack; FSelPen.Color := clBlack;
FSelPen.JoinStyle := pjsMiter; FSelPen.JoinStyle := pjsMiter;
FSelPen.OnChange := @SelPenChangeHandler; FSelPen.OnChange := @SelPenChangeHandler;
FAutoExpand := [aeData, aeNavigation]; FAutoExpand := [aeData, aeNavigation, aeDefault];
FHyperlinkTimer := TTimer.Create(self); FHyperlinkTimer := TTimer.Create(self);
FHyperlinkTimer.Interval := HYPERLINK_TIMER_INTERVAL; FHyperlinkTimer.Interval := HYPERLINK_TIMER_INTERVAL;
FHyperlinkTimer.OnTimer := @HyperlinkTimerElapsed; FHyperlinkTimer.OnTimer := @HyperlinkTimerElapsed;
@@ -4581,8 +4589,6 @@ end;
initial column widths and row heights. initial column widths and row heights.
-------------------------------------------------------------------------------} -------------------------------------------------------------------------------}
procedure TsCustomWorksheetGrid.Setup; procedure TsCustomWorksheetGrid.Setup;
var
defColCount, defRowCount: Integer;
begin begin
if csLoading in ComponentState then if csLoading in ComponentState then
exit; exit;
@@ -4604,10 +4610,13 @@ begin
end; end;
end else end else
if Worksheet <> nil then begin if Worksheet <> nil then begin
defColCount := DEFAULT_COL_COUNT; if aeDefault in FAutoExpand then begin
defRowCount := DEFAULT_ROW_COUNT; ColCount := Max(GetGridCol(Worksheet.GetLastColIndex)+1, DEFAULT_COL_COUNT) + FHeaderCount;
ColCount := Max(GetGridCol(Worksheet.GetLastColIndex)+1, defColCount) + FHeaderCount; RowCount := Max(GetGridRow(Worksheet.GetLastRowIndex)+1, DEFAULT_ROW_COUNT) + FHeaderCount;
RowCount := max(GetGridRow(Worksheet.GetLastRowIndex)+1, defRowCount) + FHeaderCount; end else begin
ColCount := Max(GetGridCol(WorkSheet.GetLastColIndex), 1) + FHeaderCount;
RowCount := Max(GetGridCol(Worksheet.GetLastRowIndex), 1) + FHeaderCount;
end;
FixedCols := FFrozenCols + FHeaderCount; FixedCols := FFrozenCols + FHeaderCount;
FixedRows := FFrozenRows + FHeaderCount; FixedRows := FFrozenRows + FHeaderCount;
if ShowHeaders then begin if ShowHeaders then begin