// CodeGear C++Builder
// Copyright (c) 1995, 2013 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'FMX.UExcelRecords.pas' rev: 26.00 (Windows)

#ifndef Fmx_UexcelrecordsHPP
#define Fmx_UexcelrecordsHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <FMX.XlsMessages.hpp>	// Pascal unit
#include <FMX.UXlsBaseRecords.hpp>	// Pascal unit
#include <FMX.UXlsBaseRecordLists.hpp>	// Pascal unit
#include <FMX.UXlsOtherRecords.hpp>	// Pascal unit
#include <FMX.UXlsSST.hpp>	// Pascal unit
#include <FMX.UXlsReferences.hpp>	// Pascal unit
#include <FMX.USheetNameList.hpp>	// Pascal unit
#include <FMX.UXlsFormula.hpp>	// Pascal unit
#include <FMX.UXlsEscher.hpp>	// Pascal unit
#include <FMX.UXlsClientData.hpp>	// Pascal unit
#include <FMX.UXlsSheet.hpp>	// Pascal unit
#include <FMX.UXlsWorkbookGlobals.hpp>	// Pascal unit
#include <FMX.UXlsBaseList.hpp>	// Pascal unit
#include <FMX.UFlxMessages.hpp>	// Pascal unit
#include <FMX.UOle2Impl.hpp>	// Pascal unit
#include <System.Contnrs.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Fmx
{
namespace Uexcelrecords
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TSheetList;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TSheetList : public Fmx::Uxlsbaselist::TBaseList
{
	typedef Fmx::Uxlsbaselist::TBaseList inherited;
	
public:
	Fmx::Uxlssheet::TSheet* operator[](int index) { return Items[index]; }
	
private:
	Fmx::Uxlssheet::TSheet* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, Fmx::Uxlssheet::TSheet* const Value);
	
public:
	__property Fmx::Uxlssheet::TSheet* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(Fmx::Uxlssheet::TSheet* aRecord);
	HIDESBASE void __fastcall Insert(int Index, Fmx::Uxlssheet::TSheet* aRecord);
	void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const DataStream);
	void __fastcall InsertAndCopyRowsAndCols(const int FirstRow, const int LastRow, const int DestRow, const int aRowCount, const int FirstCol, const int LastCol, const int DestCol, const int aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo, const bool OnlyFormulas);
	void __fastcall DeleteRowsAndCols(const System::Word aRow, const System::Word aRowCount, const System::Word aCol, const System::Word aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall DeleteSheets(const int SheetIndex, const int SheetCount);
public:
	/* TObjectList.Create */ inline __fastcall TSheetList(void)/* overload */ : Fmx::Uxlsbaselist::TBaseList() { }
	/* TObjectList.Create */ inline __fastcall TSheetList(bool AOwnsObjects)/* overload */ : Fmx::Uxlsbaselist::TBaseList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TSheetList(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TWorkbook;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TWorkbook : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	Fmx::Uxlsworkbookglobals::TWorkbookGlobals* FGlobals;
	TSheetList* FSheets;
	void __fastcall FixBoundSheetsOffset(const bool NeedsRecalc);
	void __fastcall FixRows(void);
	Fmx::Uxlssheet::TWorkSheet* __fastcall GetWorkSheets(int index);
	int __fastcall GetActiveSheet(void);
	void __fastcall SetActiveSheet(const int Value);
	void __fastcall FixRangeBoundSheetsOffset(const int SheetIndex, const Fmx::Uflxmessages::TXlsCellRange &CellRange, const bool NeedsRecalc);
	void __fastcall FixCodeNames(void);
	bool __fastcall GetIsXltTemplate(void);
	void __fastcall SetIsXltTemplate(const bool Value);
	
public:
	__property Fmx::Uxlsworkbookglobals::TWorkbookGlobals* Globals = {read=FGlobals, write=FGlobals};
	__property TSheetList* Sheets = {read=FSheets, write=FSheets};
	bool __fastcall IsWorksheet(const int Index);
	__property Fmx::Uxlssheet::TWorkSheet* WorkSheets[int index] = {read=GetWorkSheets};
	__property bool IsXltTemplate = {read=GetIsXltTemplate, write=SetIsXltTemplate, nodefault};
	__property int ActiveSheet = {read=GetActiveSheet, write=SetActiveSheet, nodefault};
	__fastcall TWorkbook(void);
	__fastcall virtual ~TWorkbook(void);
	void __fastcall LoadFromStream(Fmx::Uole2impl::TOle2File* const DataStream);
	void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const DataStream, const bool NeedsRecalc);
	void __fastcall SaveRangeToStream(Fmx::Uole2impl::TOle2File* const DataStream, const int SheetIndex, const Fmx::Uflxmessages::TXlsCellRange &CellRange, const bool NeedsRecalc);
	void __fastcall InsertAndCopyRowsAndCols(const int SheetNo, const int FirstRow, const int LastRow, const int DestRow, const int aRowCount, const int FirstCol, const int LastCol, const int DestCol, const int aColCount, const bool OnlyFormulas);
	void __fastcall DeleteRowsAndCols(const int SheetNo, const System::Word aRow, const System::Word aRowCount, const System::Word aCol, const System::Word aColCount);
	void __fastcall InsertSheets(const int CopyFrom, const int InsertBefore, int SheetCount);
	void __fastcall DeleteSheets(const int SheetPos, const int SheetCount);
	void __fastcall InsertHPageBreak(const int SheetNo, const System::Word aRow);
	void __fastcall InsertVPageBreak(const int SheetNo, const System::Word aCol);
	void __fastcall RestoreObjectCoords(int dSheet);
};

#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
}	/* namespace Uexcelrecords */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_UEXCELRECORDS)
using namespace Fmx::Uexcelrecords;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX)
using namespace Fmx;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Fmx_UexcelrecordsHPP
