From 9eb50b81d3239f2cc34704fa3c3baaa0a7df6eb5 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Mon, 3 Oct 2016 17:24:59 +0000 Subject: [PATCH] fpspreadsheet: Fix zoom demo file reading error if format is unknown. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5240 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../fpspreadsheet/examples/visual/zoom/zdmain.pas | 11 ++++++++++- components/fpspreadsheet/fpspreadsheet.pas | 5 +++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/components/fpspreadsheet/examples/visual/zoom/zdmain.pas b/components/fpspreadsheet/examples/visual/zoom/zdmain.pas index 330f3108b..39d40f8e6 100644 --- a/components/fpspreadsheet/examples/visual/zoom/zdmain.pas +++ b/components/fpspreadsheet/examples/visual/zoom/zdmain.pas @@ -60,7 +60,10 @@ begin if FWorkbook <> nil then OpenDialog.InitialDir := ExtractFileDir(FWorkbook.FileName); if OpenDialog.Execute then begin - fmt := FOpenFormats[OpenDialog.FilterIndex-1]; + if OpenDialog.FilterIndex < 3 then + fmt := sfidUnknown + else + fmt := FOpenFormats[OpenDialog.FilterIndex - 3]; LoadFile(OpenDialog.FileName, fmt); end; end; @@ -97,6 +100,12 @@ procedure TMainForm.FormCreate(Sender: TObject); var priorityFormats: Array[0..7] of TsSpreadFormatID; begin + { + Grid.RowCount:=2; + Grid.ColCount:=2; + Grid.AutoExpand:= []; + } + priorityFormats[0] := ord(sfOOXML); priorityFormats[1] := ord(sfExcel8); priorityFormats[2] := ord(sfExcel5); diff --git a/components/fpspreadsheet/fpspreadsheet.pas b/components/fpspreadsheet/fpspreadsheet.pas index 02c4a31f3..88d56e46d 100755 --- a/components/fpspreadsheet/fpspreadsheet.pas +++ b/components/fpspreadsheet/fpspreadsheet.pas @@ -7392,6 +7392,11 @@ begin if not FileExists(AFileName) then raise Exception.CreateFmt(rsFileNotFound, [AFileName]); + if AFormatID = sfIDUnknown then begin + ReadFromFile(AFileName, AParams); + exit; + end; + AReader := CreateSpreadReader(self, AFormatID); try FFileName := AFileName;