fpspreadsheet: Extend zoom demo to show all pages of the same workbook with the same predefined zoom factor

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5544 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2016-12-19 22:20:22 +00:00
parent 56009b4a89
commit c8e0dfe161
3 changed files with 64 additions and 3 deletions

View File

@ -93,6 +93,24 @@ object MainForm: TMainForm
Caption = 'Write zoom factor'
TabOrder = 5
end
object BtnPrevSheet: TSpeedButton
Left = 504
Height = 23
Top = 406
Width = 79
Anchors = [akRight, akBottom]
Caption = 'Prev sheet'
OnClick = BtnPrevSheetClick
end
object BtnNextSheet: TSpeedButton
Left = 588
Height = 23
Top = 406
Width = 79
Anchors = [akRight, akBottom]
Caption = 'Next sheet'
OnClick = BtnNextSheetClick
end
object OpenDialog: TOpenDialog
left = 280
top = 128

View File

@ -6,7 +6,7 @@ interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
Spin, Types,
Spin, Buttons, Types,
fpstypes, fpspreadsheet, fpspreadsheetgrid;
type
@ -22,12 +22,16 @@ type
Grid: TsWorksheetGrid;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
BtnPrevSheet: TSpeedButton;
BtnNextSheet: TSpeedButton;
procedure BtnOpenClick(Sender: TObject);
procedure BtnPrevSheetClick(Sender: TObject);
procedure BtnSaveClick(Sender: TObject);
procedure edZoomEditingDone(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure GridMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
procedure BtnNextSheetClick(Sender: TObject);
private
FWorkbook: TsWorkbook;
FOpenFormats: TsSpreadFormatIDArray;
@ -72,6 +76,38 @@ begin
end;
end;
procedure TMainForm.BtnNextSheetClick(Sender: TObject);
var
i, n: Integer;
begin
n := Grid.Workbook.GetWorksheetCount;
i := 0;
while (i < n-1) do begin
if (Grid.Workbook.GetWorksheetByIndex(i) = Grid.Worksheet) then
begin
Grid.LoadFromWorkbook(Grid.Workbook, i+1);
exit;
end;
inc(i);
end;
end;
procedure TMainForm.BtnPrevSheetClick(Sender: TObject);
var
i, n: Integer;
begin
n := Grid.Workbook.GetWorksheetCount;
i := 1;
while (i < n) do begin
if (Grid.Workbook.GetWorksheetByIndex(i) = Grid.Worksheet) then
begin
Grid.LoadFromWorkbook(Grid.Workbook, i-1);
exit;
end;
inc(i);
end;
end;
procedure TMainForm.BtnSaveClick(Sender: TObject);
var
fmt: TsSpreadFormatID;
@ -142,6 +178,8 @@ procedure TMainForm.LoadFile(const AFileName: String; AFormatID: TsSpreadFormatI
var
crs: TCursor;
book: TsWorkbook;
i: Integer;
sheet: TsWorksheet;
begin
crs := Screen.Cursor;
try
@ -153,7 +191,12 @@ begin
book.ReadFromFile(AFilename, AFormatID);
// If you want to override the zoom factor of the file set it before
// assigning the worksheet to the grid.
book.GetFirstWorksheet.ZoomFactor := edZoom.Value / 100;
for i:=0 to book.GetWorksheetCount-1 do
begin
sheet := book.GetWorksheetByIndex(i);
sheet.ZoomFactor := edZoom.Value / 100;
end;
// book.GetFirstWorksheet.ZoomFactor := edZoom.Value / 100;
// Load the worksheet into the grid.
Grid.LoadFromWorkbook(book, 0);
except

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="9"/>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<SessionStorage Value="InProjectDir"/>