Hi Adrian
please note that the problem I described was not when running a program, it was in the IDE when I want to do a check on a report in the Flexcel Designer. At this oint, if I double click on the flexcelReport, linked to a XLSXAdapter which points to an xlsx file, I get the message 'The file "" is invalid'. The stack trace (details) for the error are:
[19E8AE64]{FlexCelXE2.bpl} Uole2impl.TOle2Header + $290
[19E8C890]{FlexCelXE2.bpl} Uole2impl.TOle2File + $7C
[5003C547]{rtl160.bpl } System.TObject.NewInstance (Line 13000, "System.pas" + 1) + $10
[19E8C7ED]{FlexCelXE2.bpl} Uole2impl.TOle2File + $25
[19EF0FA4]{FlexCelXE2.bpl} Xlsadapter.TXLSFile.OpenStream + $4C
[19EF1214]{FlexCelXE2.bpl} Xlsadapter.TXLSFile.OpenFileAndOrSearch + $EC
[19EF111C]{FlexCelXE2.bpl} Xlsadapter.TXLSFile.OpenFileAndSearch + $14
[15E43CB2]{FlexCelXE2_DESIGN.bpl} Uchecktemplate.TCheckTemplate.Check + $14A
[15E436E3]{FlexCelXE2_DESIGN.bpl} Uchecktemplate.InvokeCheckTemplate + $1DB
[15E462D7]{FlexCelXE2_DESIGN.bpl} Uexceledit.TExcelEdit.ActionCheckTemplateExecute + $73
[500B5B97]{rtl160.bpl } System.Classes.TBasicAction.Execute (Line 13372, "System.Classes.pas" + 3) + $7
[5031B86D]{vcl160.bpl } Vcl.ActnList.TContainedAction.Execute (Line 448, "Vcl.ActnList.pas" + 8) + $2C
[5031C658]{vcl160.bpl } Vcl.ActnList.TCustomAction.Execute (Line 1094, "Vcl.ActnList.pas" + 7) + $8
[0B6A894E]{IDEFixPack.dll} UnregisterChangeDirectoryNotifier + $9C1A
[500B5A5B]{rtl160.bpl } System.Classes.TBasicActionLink.Execute (Line 13301, "System.Classes.pas" + 2) + $7
[50332ED4]{vcl160.bpl } Vcl.Controls.TControl.Click (Line 7318, "Vcl.Controls.pas" + 7) + $7
[503ACE98]{vcl160.bpl } Vcl.ComCtrls.TToolButton.Click (Line 21225, "Vcl.ComCtrls.pas" + 0) + $0
[50333395]{vcl160.bpl } Vcl.Controls.TControl.WMLButtonUp (Line 7459, "Vcl.Controls.pas" + 7) + $6
[50332995]{vcl160.bpl } Vcl.Controls.TControl.WndProc (Line 7204, "Vcl.Controls.pas" + 91) + $6
[503325D0]{vcl160.bpl } Vcl.Controls.TControl.Perform (Line 6982, "Vcl.Controls.pas" + 10) + $8
[50336A40]{vcl160.bpl } Vcl.Controls.GetControlAtPos (Line 9712, "Vcl.Controls.pas" + 4) + $76
[50336B0A]{vcl160.bpl } Vcl.Controls.TWinControl.ControlAtPos (Line 9735, "Vcl.Controls.pas" + 13) + $E
[503325D0]{vcl160.bpl } Vcl.Controls.TControl.Perform (Line 6982, "Vcl.Controls.pas" + 10) + $8
[50336BD4]{vcl160.bpl } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9759, "Vcl.Controls.pas" + 15) + $2A
[5033716F]{vcl160.bpl } Vcl.Controls.TWinControl.WndProc (Line 9927, "Vcl.Controls.pas" + 103) + $6
[503AEFA5]{vcl160.bpl } Vcl.ComCtrls.TToolBar.UpdateButtonState (Line 22492, "Vcl.ComCtrls.pas" + 11) + $27
[503AEFE6]{vcl160.bpl } Vcl.ComCtrls.TToolBar.UpdateButtonStates (Line 22503, "Vcl.ComCtrls.pas" + 3) + $4
[503B1964]{vcl160.bpl } Vcl.ComCtrls.TToolBar.WndProc (Line 24078, "Vcl.ComCtrls.pas" + 104) + $6
[50336948]{vcl160.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9689, "Vcl.Controls.pas" + 3) + $6
[500B688C]{rtl160.bpl } System.Classes.StdWndProc (Line 13878, "System.Classes.pas" + 8) + $0
[50454598]{vcl160.bpl } Vcl.Forms.TApplication.CancelHint (Line 10993, "Vcl.Forms.pas" + 6) + $7
[50453213]{vcl160.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10164, "Vcl.Forms.pas" + 23) + $1
[50453256]{vcl160.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10194, "Vcl.Forms.pas" + 1) + $4
[5044EA75]{vcl160.bpl } Vcl.Forms.TCustomForm.ShowModal (Line 7035, "Vcl.Forms.pas" + 33) + $5
[15E458AE]{FlexCelXE2_DESIGN.bpl} Uexceledit.InvokeExcelEditor + $72
[15E468A4]{FlexCelXE2_DESIGN.bpl} Dflexcelreporteditor.TFlexCelReportEditor.ExecuteVerb + $90
[20FAFE98]{designide160.bpl} DesignEditors.TComponentEditor.Edit (Line 2687, "DesignEditors.pas" + 1) + $11
[20FD9E6D]{designide160.bpl} ComponentDesigner.TInternalItem.Edit (Line 7200, "ComponentDesigner.pas" + 1) + $F
[20FA0D58]{designide160.bpl} Designer.TDesigner.Edit (Line 974, "Designer.pas" + 0) + $4
[20FA304F]{designide160.bpl} Designer.TDesigner.MouseDown (Line 1673, "Designer.pas" + 50) + $6
[51D3A789]{vcldesigner160.bpl} VCLSurface.TComponentToolWindow.WndProc (Line 1335, "VCLSurface.pas" + 16) + $32
[51D3B22B]{vcldesigner160.bpl} VCLSurface.TContainer.WndProc (Line 1635, "VCLSurface.pas" + 39) + $6
[51D3A5AB]{vcldesigner160.bpl} VCLSurface.TDesignerToolWindow.MainWndProc (Line 1270, "VCLSurface.pas" + 2) + $7
[500B688C]{rtl160.bpl } System.Classes.StdWndProc (Line 13878, "System.Classes.pas" + 8) + $0
[5032D7BE]{vcl160.bpl } Vcl.Controls.FindControl (Line 3540, "Vcl.Controls.pas" + 6) + $9
[50453213]{vcl160.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10164, "Vcl.Forms.pas" + 23) + $1
[50453256]{vcl160.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10194, "Vcl.Forms.pas" + 1) + $4
[50453595]{vcl160.bpl } Vcl.Forms.TApplication.Run (Line 10332, "Vcl.Forms.pas" + 26) + $3
When I take the program you supplied, I defined the template for the FlexcelReport1 to be the testtemplate.xls (starting with the version as provided in which the FlexcelReport uses XLSAdapter1. If I click on Check in the Flexcel Designer, everything checks out fine.
If I now change the FlexcelReport1 to use XLSXAdapter1 but keep the template file as testtemplate.xls, check works fine.
If I use XLSXAdapter1 but set the template to testtemplate.xlsx I get the same 'The file "" is invalid' error and the stack trace is:
[19E8AE64]{FlexCelXE2.bpl} Uole2impl.TOle2Header + $290
[19E8C890]{FlexCelXE2.bpl} Uole2impl.TOle2File + $7C
[5003C547]{rtl160.bpl } System.TObject.NewInstance (Line 13000, "System.pas" + 1) + $10
[19E8C7ED]{FlexCelXE2.bpl} Uole2impl.TOle2File + $25
[19EF0FA4]{FlexCelXE2.bpl} Xlsadapter.TXLSFile.OpenStream + $4C
[19EF1214]{FlexCelXE2.bpl} Xlsadapter.TXLSFile.OpenFileAndOrSearch + $EC
[19EF111C]{FlexCelXE2.bpl} Xlsadapter.TXLSFile.OpenFileAndSearch + $14
[15E43CB2]{FlexCelXE2_DESIGN.bpl} Uchecktemplate.TCheckTemplate.Check + $14A
[15E436E3]{FlexCelXE2_DESIGN.bpl} Uchecktemplate.InvokeCheckTemplate + $1DB
[15E462D7]{FlexCelXE2_DESIGN.bpl} Uexceledit.TExcelEdit.ActionCheckTemplateExecute + $73
[500B5B97]{rtl160.bpl } System.Classes.TBasicAction.Execute (Line 13372, "System.Classes.pas" + 3) + $7
[5031B86D]{vcl160.bpl } Vcl.ActnList.TContainedAction.Execute (Line 448, "Vcl.ActnList.pas" + 8) + $2C
[5031C658]{vcl160.bpl } Vcl.ActnList.TCustomAction.Execute (Line 1094, "Vcl.ActnList.pas" + 7) + $8
[0B6A894E]{IDEFixPack.dll} UnregisterChangeDirectoryNotifier + $9C1A
[500B5A5B]{rtl160.bpl } System.Classes.TBasicActionLink.Execute (Line 13301, "System.Classes.pas" + 2) + $7
[50332ED4]{vcl160.bpl } Vcl.Controls.TControl.Click (Line 7318, "Vcl.Controls.pas" + 7) + $7
[503ACE98]{vcl160.bpl } Vcl.ComCtrls.TToolButton.Click (Line 21225, "Vcl.ComCtrls.pas" + 0) + $0
[50333395]{vcl160.bpl } Vcl.Controls.TControl.WMLButtonUp (Line 7459, "Vcl.Controls.pas" + 7) + $6
[50332995]{vcl160.bpl } Vcl.Controls.TControl.WndProc (Line 7204, "Vcl.Controls.pas" + 91) + $6
[503325D0]{vcl160.bpl } Vcl.Controls.TControl.Perform (Line 6982, "Vcl.Controls.pas" + 10) + $8
[50336A40]{vcl160.bpl } Vcl.Controls.GetControlAtPos (Line 9712, "Vcl.Controls.pas" + 4) + $76
[50336B0A]{vcl160.bpl } Vcl.Controls.TWinControl.ControlAtPos (Line 9735, "Vcl.Controls.pas" + 13) + $E
[503325D0]{vcl160.bpl } Vcl.Controls.TControl.Perform (Line 6982, "Vcl.Controls.pas" + 10) + $8
[50336BD4]{vcl160.bpl } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9759, "Vcl.Controls.pas" + 15) + $2A
[5033716F]{vcl160.bpl } Vcl.Controls.TWinControl.WndProc (Line 9927, "Vcl.Controls.pas" + 103) + $6
[503AEFA5]{vcl160.bpl } Vcl.ComCtrls.TToolBar.UpdateButtonState (Line 22492, "Vcl.ComCtrls.pas" + 11) + $27
[503AEFE6]{vcl160.bpl } Vcl.ComCtrls.TToolBar.UpdateButtonStates (Line 22503, "Vcl.ComCtrls.pas" + 3) + $4
[503B1964]{vcl160.bpl } Vcl.ComCtrls.TToolBar.WndProc (Line 24078, "Vcl.ComCtrls.pas" + 104) + $6
[50336948]{vcl160.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9689, "Vcl.Controls.pas" + 3) + $6
[500B688C]{rtl160.bpl } System.Classes.StdWndProc (Line 13878, "System.Classes.pas" + 8) + $0
[50454598]{vcl160.bpl } Vcl.Forms.TApplication.CancelHint (Line 10993, "Vcl.Forms.pas" + 6) + $7
[50453213]{vcl160.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10164, "Vcl.Forms.pas" + 23) + $1
[50453256]{vcl160.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10194, "Vcl.Forms.pas" + 1) + $4
[5044EA75]{vcl160.bpl } Vcl.Forms.TCustomForm.ShowModal (Line 7035, "Vcl.Forms.pas" + 33) + $5
[15E458AE]{FlexCelXE2_DESIGN.bpl} Uexceledit.InvokeExcelEditor + $72
[15E468A4]{FlexCelXE2_DESIGN.bpl} Dflexcelreporteditor.TFlexCelReportEditor.ExecuteVerb + $90
[20FAFE98]{designide160.bpl} DesignEditors.TComponentEditor.Edit (Line 2687, "DesignEditors.pas" + 1) + $11
[20FD9E6D]{designide160.bpl} ComponentDesigner.TInternalItem.Edit (Line 7200, "ComponentDesigner.pas" + 1) + $F
[20FA0D58]{designide160.bpl} Designer.TDesigner.Edit (Line 974, "Designer.pas" + 0) + $4
[20FA304F]{designide160.bpl} Designer.TDesigner.MouseDown (Line 1673, "Designer.pas" + 50) + $6
[51D3A789]{vcldesigner160.bpl} VCLSurface.TComponentToolWindow.WndProc (Line 1335, "VCLSurface.pas" + 16) + $32
[51D3B22B]{vcldesigner160.bpl} VCLSurface.TContainer.WndProc (Line 1635, "VCLSurface.pas" + 39) + $6
[51D3A5AB]{vcldesigner160.bpl} VCLSurface.TDesignerToolWindow.MainWndProc (Line 1270, "VCLSurface.pas" + 2) + $7
[500B688C]{rtl160.bpl } System.Classes.StdWndProc (Line 13878, "System.Classes.pas" + 8) + $0
[50454598]{vcl160.bpl } Vcl.Forms.TApplication.CancelHint (Line 10993, "Vcl.Forms.pas" + 6) + $7
[50453213]{vcl160.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10164, "Vcl.Forms.pas" + 23) + $1
[50453256]{vcl160.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10194, "Vcl.Forms.pas" + 1) + $4
[50453595]{vcl160.bpl } Vcl.Forms.TApplication.Run (Line 10332, "Vcl.Forms.pas" + 26) + $3
By the way, if I try to compile your program, it will not compile with both XLSAdapter and XLSXAdapter defined. I get the following error message:
dcc command line for "teststreaming.dpr"
c:\program files\embarcadero\rad studio\9.0\bin\dcc32.exe -$O- -$W+ --no-config -M -Q -TX.exe -AGenerics.Collections=System.Generics.Collections;
Generics.Defaults=System.Generics.Defaults;WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG -I"c:\program
files\embarcadero\rad studio\9.0\Imports";"C:\Users\Public\Documents\RAD Studio\9.0\Dcp";c:\dcpxe2;"C:\Users\bre255\AppData\Roaming\IntraWeb
XII\Libxe2W32";"c:\program files\embarcadero\rad studio\9.0\lib\win32\debug";"c:\program files\embarcadero\rad studio\9.0\lib\win32\release";
"C:\Program Files\FFVCL_Trial\Dcp";c:\users\bre255\documents\tmssoftware\flexcelvcl\source\win32\release;
C:\Users\bre255\Documents\TMSSoftware\FlexCelVCLNT\Packages\dXE2\Win32\Release;C:\Users\bre255\Documents\TMSSoftware\FlexCelVCL\dcu\XE2\Win32;
C:\Users\bre255\Documents\TMSSoftware\FlexCelVCL\Source -LE"C:\Users\Public\Documents\RAD Studio\9.0\Bpl" -LN"C:\Users\Public\Documents\RAD
Studio\9.0\Dcp" -NSWinapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;
Data;Datasnap;Web;Soap;FlexCel; -O"c:\program files\embarcadero\rad studio\9.0\Imports";"C:\Users\Public\Documents\RAD Studio\9.0\Dcp";c:\dcpxe2;
"C:\Users\bre255\AppData\Roaming\IntraWeb XII\Libxe2W32";"c:\program files\embarcadero\rad studio\9.0\lib\win32\debug";"c:\program
files\embarcadero\rad studio\9.0\lib\win32\release";"C:\Program Files\FFVCL_Trial\Dcp";
c:\users\bre255\documents\tmssoftware\flexcelvcl\source\win32\release;C:\Users\bre255\Documents\TMSSoftware\FlexCelVCLNT\Packages\dXE2\Win32\Release;
C:\Users\bre255\Documents\TMSSoftware\FlexCelVCL\dcu\XE2\Win32;C:\Users\bre255\Documents\TMSSoftware\FlexCelVCL\Source -R"c:\program
files\embarcadero\rad studio\9.0\Imports";"C:\Users\Public\Documents\RAD Studio\9.0\Dcp";c:\dcpxe2;"C:\Users\bre255\AppData\Roaming\IntraWeb
XII\Libxe2W32";"c:\program files\embarcadero\rad studio\9.0\lib\win32\debug";"c:\program files\embarcadero\rad studio\9.0\lib\win32\release";
"C:\Program Files\FFVCL_Trial\Dcp";c:\users\bre255\documents\tmssoftware\flexcelvcl\source\win32\release;
C:\Users\bre255\Documents\TMSSoftware\FlexCelVCLNT\Packages\dXE2\Win32\Release;C:\Users\bre255\Documents\TMSSoftware\FlexCelVCL\dcu\XE2\Win32;
C:\Users\bre255\Documents\TMSSoftware\FlexCelVCL\Source -U"c:\program files\embarcadero\rad studio\9.0\Imports";"C:\Users\Public\Documents\RAD
Studio\9.0\Dcp";c:\dcpxe2;"C:\Users\bre255\AppData\Roaming\IntraWeb XII\Libxe2W32";"c:\program files\embarcadero\rad studio\9.0\lib\win32\debug";
"c:\program files\embarcadero\rad studio\9.0\lib\win32\release";"C:\Program Files\FFVCL_Trial\Dcp";
c:\users\bre255\documents\tmssoftware\flexcelvcl\source\win32\release;C:\Users\bre255\Documents\TMSSoftware\FlexCelVCLNT\Packages\dXE2\Win32\Release;
C:\Users\bre255\Documents\TMSSoftware\FlexCelVCL\dcu\XE2\Win32;C:\Users\bre255\Documents\TMSSoftware\FlexCelVCL\Source -K00400000
-NB"C:\Users\Public\Documents\RAD Studio\9.0\Dcp" -NH"C:\Users\Public\Documents\RAD Studio\9.0\hpp" teststreaming.dpr
[DCC Error] Unit1.pas(16): E2003 Undeclared identifier: 'TXLSAdapter'
[DCC Error] Unit1.pas(16): E2217 Published field 'XLSAdapter1' not a class or interface type
[DCC Fatal Error] teststreaming.dpr(7): F2063 Could not compile used unit 'Unit1.pas'
Failed
Elapsed time: 00:00:05.4
I have seen the same with my own programs and found that I had to replace XLSAdapter with XLSXAdapter in all units of a program to get it to compile i.e. I could not mix XLSAdapter and XLSXAdapter in one program, even if defined in different units. To do this I had to remove the uses link to XLSAdapter.
Hope this helps.
Regards
Bruce