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

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

#ifndef Fmx_UxlsbaserecordlistsHPP
#define Fmx_UxlsbaserecordlistsHPP

#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.UXlsOtherRecords.hpp>	// Pascal unit
#include <FMX.UXlsFormula.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 Uxlsbaserecordlists
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TBaseRecordList;
class PASCALIMPLEMENTATION TBaseRecordList : public Fmx::Uxlsbaselist::TBaseList
{
	typedef Fmx::Uxlsbaselist::TBaseList inherited;
	
public:
	HIDESBASE int __fastcall Add(Fmx::Uxlsbaserecords::TBaseRecord* aRecord);
	HIDESBASE void __fastcall Insert(int Index, Fmx::Uxlsbaserecords::TBaseRecord* aRecord);
	
private:
	__int64 FTotalSize;
	
protected:
	virtual void __fastcall Notify(void * Ptr, System::Classes::TListNotification Action);
	virtual __int64 __fastcall GetTotalSize(void);
	
public:
	void __fastcall AdaptSize(int Delta);
	void __fastcall CopyFrom(TBaseRecordList* const aBaseRecordList);
	__property __int64 TotalSize = {read=GetTotalSize};
	virtual void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const DataStream);
public:
	/* TObjectList.Create */ inline __fastcall TBaseRecordList(void)/* overload */ : Fmx::Uxlsbaselist::TBaseList() { }
	/* TObjectList.Create */ inline __fastcall TBaseRecordList(bool AOwnsObjects)/* overload */ : Fmx::Uxlsbaselist::TBaseList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TBaseRecordList(void) { }
	
};


class DELPHICLASS TBaseRowColRecordList;
class PASCALIMPLEMENTATION TBaseRowColRecordList : public TBaseRecordList
{
	typedef TBaseRecordList inherited;
	
public:
	Fmx::Uxlsbaserecords::TBaseRowColRecord* operator[](int index) { return Items[index]; }
	
private:
	Fmx::Uxlsbaserecords::TBaseRowColRecord* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, Fmx::Uxlsbaserecords::TBaseRowColRecord* const Value);
	
public:
	__property Fmx::Uxlsbaserecords::TBaseRowColRecord* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(Fmx::Uxlsbaserecords::TBaseRowColRecord* aRecord);
	HIDESBASE void __fastcall Insert(int Index, Fmx::Uxlsbaserecords::TBaseRowColRecord* aRecord);
	
private:
	bool Sorted;
	
public:
	bool __fastcall Find(const int aItem, int &Index);
	HIDESBASE void __fastcall Sort(void);
	void __fastcall ArrangeCopyRowsAndCols(const int RowOffset, const int ColOffset);
	void __fastcall ArrangeInsertRowsAndCols(const int aRowPos, const int aRowCount, const int aColPos, const int aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	virtual void __fastcall SaveRangeToStream(Fmx::Uole2impl::TOle2File* const DataStream, const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	virtual __int64 __fastcall TotalRangeSize(const Fmx::Uflxmessages::TXlsCellRange &CellRange, const bool NeedsRecalc);
public:
	/* TObjectList.Create */ inline __fastcall TBaseRowColRecordList(void)/* overload */ : TBaseRecordList() { }
	/* TObjectList.Create */ inline __fastcall TBaseRowColRecordList(bool AOwnsObjects)/* overload */ : TBaseRecordList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TBaseRowColRecordList(void) { }
	
};


class DELPHICLASS TNameRecordList;
class PASCALIMPLEMENTATION TNameRecordList : public TBaseRecordList
{
	typedef TBaseRecordList inherited;
	
public:
	Fmx::Uxlsformula::TNameRecord* operator[](int index) { return Items[index]; }
	
private:
	Fmx::Uxlsformula::TNameRecord* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, Fmx::Uxlsformula::TNameRecord* const Value);
	
public:
	__property Fmx::Uxlsformula::TNameRecord* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(Fmx::Uxlsformula::TNameRecord* aRecord);
	HIDESBASE void __fastcall Insert(int Index, Fmx::Uxlsformula::TNameRecord* aRecord);
	void __fastcall ArrangeInsertRowsAndCols(const int InsRow, const int aRowCount, const int InsCol, const int aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall InsertSheets(const int CopyFrom, const int BeforeSheet, int SheetCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall DeleteSheets(const int SheetIndex, const int SheetCount);
public:
	/* TObjectList.Create */ inline __fastcall TNameRecordList(void)/* overload */ : TBaseRecordList() { }
	/* TObjectList.Create */ inline __fastcall TNameRecordList(bool AOwnsObjects)/* overload */ : TBaseRecordList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TNameRecordList(void) { }
	
};


class DELPHICLASS TBoundSheetRecordList;
class PASCALIMPLEMENTATION TBoundSheetRecordList : public TBaseRecordList
{
	typedef TBaseRecordList inherited;
	
public:
	Fmx::Uxlsotherrecords::TBoundSheetRecord* operator[](int index) { return Items[index]; }
	
private:
	System::UnicodeString __fastcall GetSheetName(int index);
	void __fastcall SetSheetName(int index, const System::UnicodeString Value);
	Fmx::Uflxmessages::TXlsSheetVisible __fastcall GetSheetVisible(int index);
	void __fastcall SetSheetVisible(int index, const Fmx::Uflxmessages::TXlsSheetVisible Value);
	Fmx::Uxlsotherrecords::TBoundSheetRecord* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, Fmx::Uxlsotherrecords::TBoundSheetRecord* const Value);
	
public:
	__property Fmx::Uxlsotherrecords::TBoundSheetRecord* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(Fmx::Uxlsotherrecords::TBoundSheetRecord* aRecord);
	HIDESBASE void __fastcall Insert(int Index, Fmx::Uxlsotherrecords::TBoundSheetRecord* aRecord);
	__property System::UnicodeString SheetName[int index] = {read=GetSheetName, write=SetSheetName};
	__property Fmx::Uflxmessages::TXlsSheetVisible SheetVisible[int index] = {read=GetSheetVisible, write=SetSheetVisible};
public:
	/* TObjectList.Create */ inline __fastcall TBoundSheetRecordList(void)/* overload */ : TBaseRecordList() { }
	/* TObjectList.Create */ inline __fastcall TBoundSheetRecordList(bool AOwnsObjects)/* overload */ : TBaseRecordList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TBoundSheetRecordList(void) { }
	
};


class DELPHICLASS TCellRecordList;
class PASCALIMPLEMENTATION TCellRecordList : public TBaseRowColRecordList
{
	typedef TBaseRowColRecordList inherited;
	
public:
	Fmx::Uxlsbaserecords::TCellRecord* operator[](int index) { return Items[index]; }
	
private:
	HIDESBASE Fmx::Uxlsbaserecords::TCellRecord* __fastcall GetItems(int index);
	HIDESBASE void __fastcall SetItems(int index, Fmx::Uxlsbaserecords::TCellRecord* const Value);
	
public:
	__property Fmx::Uxlsbaserecords::TCellRecord* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(Fmx::Uxlsbaserecords::TCellRecord* aRecord);
	HIDESBASE void __fastcall Insert(int Index, Fmx::Uxlsbaserecords::TCellRecord* aRecord);
	
private:
	void __fastcall GoNext(int &i, const int aCount, Fmx::Uxlsbaserecords::TCellRecord* &it, Fmx::Uxlsbaserecords::TCellRecord* &NextRec);
	__int64 __fastcall SaveAndCalcRange(Fmx::Uole2impl::TOle2File* const DataStream, const Fmx::Uflxmessages::TXlsCellRange &CellRange, const bool NeedsRecalc);
	
public:
	virtual void __fastcall SaveRangeToStream(Fmx::Uole2impl::TOle2File* const DataStream, const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	virtual __int64 __fastcall TotalRangeSize(const Fmx::Uflxmessages::TXlsCellRange &CellRange, const bool NeedsRecalc);
	virtual void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const DataStream);
	virtual __int64 __fastcall GetTotalSize(void);
	__int64 __fastcall FixTotalSize(const bool NeedsRecalc);
public:
	/* TObjectList.Create */ inline __fastcall TCellRecordList(void)/* overload */ : TBaseRowColRecordList() { }
	/* TObjectList.Create */ inline __fastcall TCellRecordList(bool AOwnsObjects)/* overload */ : TBaseRowColRecordList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TCellRecordList(void) { }
	
};


class DELPHICLASS TRowRecordList;
class PASCALIMPLEMENTATION TRowRecordList : public TBaseRowColRecordList
{
	typedef TBaseRowColRecordList inherited;
	
public:
	Fmx::Uxlsbaserecords::TRowRecord* operator[](int index) { return Items[index]; }
	
private:
	HIDESBASE Fmx::Uxlsbaserecords::TRowRecord* __fastcall GetItems(int index);
	HIDESBASE void __fastcall SetItems(int index, Fmx::Uxlsbaserecords::TRowRecord* const Value);
	
public:
	int __fastcall AddRecord(Fmx::Uxlsbaserecords::TRowRecord* aRecord);
	__property Fmx::Uxlsbaserecords::TRowRecord* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	bool __fastcall HasRow(const int Index);
	void __fastcall AddRow(const System::Word Index);
	void __fastcall InsertAndCopyRows(const int FirstRow, const int LastRow, const int DestRow, const int aCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall DeleteRows(const System::Word aRow, const System::Word aRowCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	int __fastcall RowHeight(const int aRow);
	void __fastcall SetRowHeight(const int aRow, const System::Word Height);
	void __fastcall AutoRowHeight(const int aRow, const bool Value);
	bool __fastcall IsAutoRowHeight(const int aRow);
	virtual __int64 __fastcall TotalRangeSize(const Fmx::Uflxmessages::TXlsCellRange &CellRange, const bool NeedsRecalc);
	void __fastcall CalcGuts(Fmx::Uxlsotherrecords::TGutsRecord* const Guts);
public:
	/* TObjectList.Create */ inline __fastcall TRowRecordList(void)/* overload */ : TBaseRowColRecordList() { }
	/* TObjectList.Create */ inline __fastcall TRowRecordList(bool AOwnsObjects)/* overload */ : TBaseRowColRecordList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TRowRecordList(void) { }
	
};


class DELPHICLASS TShrFmlaRecordList;
class PASCALIMPLEMENTATION TShrFmlaRecordList : public TBaseRecordList
{
	typedef TBaseRecordList inherited;
	
public:
	Fmx::Uxlsformula::TShrFmlaRecord* operator[](int index) { return Items[index]; }
	
private:
	Fmx::Uxlsformula::TShrFmlaRecord* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, Fmx::Uxlsformula::TShrFmlaRecord* const Value);
	
public:
	__property Fmx::Uxlsformula::TShrFmlaRecord* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(Fmx::Uxlsformula::TShrFmlaRecord* aRecord);
	HIDESBASE void __fastcall Insert(int Index, Fmx::Uxlsformula::TShrFmlaRecord* aRecord);
	
private:
	bool Sorted;
	
public:
	bool __fastcall Find(const unsigned aItem, int &Index);
	HIDESBASE void __fastcall Sort(void);
public:
	/* TObjectList.Create */ inline __fastcall TShrFmlaRecordList(void)/* overload */ : TBaseRecordList() { }
	/* TObjectList.Create */ inline __fastcall TShrFmlaRecordList(bool AOwnsObjects)/* overload */ : TBaseRecordList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TShrFmlaRecordList(void) { }
	
};


//-- var, const, procedure ---------------------------------------------------
}	/* namespace Uxlsbaserecordlists */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_UXLSBASERECORDLISTS)
using namespace Fmx::Uxlsbaserecordlists;
#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_UxlsbaserecordlistsHPP
