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

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

#ifndef Fmx_UxlspagebreaksHPP
#define Fmx_UxlspagebreaksHPP

#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 <FMX.UXlsBaseRecords.hpp>	// Pascal unit
#include <FMX.UXlsBaseList.hpp>	// Pascal unit
#include <FMX.XlsMessages.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <System.SysUtils.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 Uxlspagebreaks
{
//-- type declarations -------------------------------------------------------
#pragma pack(push,1)
struct DECLSPEC_DRECORD THBreakData
{
public:
	System::Word Row;
	System::Word Col1;
	System::Word Col2;
};
#pragma pack(pop)


#pragma pack(push,1)
struct DECLSPEC_DRECORD TVBreakData
{
public:
	System::Word Col;
	System::Word Row1;
	System::Word Row2;
};
#pragma pack(pop)


class DELPHICLASS THPageBreakRecord;
#pragma pack(push,4)
class PASCALIMPLEMENTATION THPageBreakRecord : public Fmx::Uxlsbaserecords::TBaseRecord
{
	typedef Fmx::Uxlsbaserecords::TBaseRecord inherited;
	
public:
	System::Word __fastcall Count(void);
	THBreakData __fastcall BreakData(const int index);
public:
	/* TBaseRecord.Create */ inline __fastcall virtual THPageBreakRecord(const System::Word aId, const Fmx::Xlsmessages::PArrayOfByte aData, const int aDataSize) : Fmx::Uxlsbaserecords::TBaseRecord(aId, aData, aDataSize) { }
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~THPageBreakRecord(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TVPageBreakRecord;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TVPageBreakRecord : public Fmx::Uxlsbaserecords::TBaseRecord
{
	typedef Fmx::Uxlsbaserecords::TBaseRecord inherited;
	
public:
	System::Word __fastcall Count(void);
	TVBreakData __fastcall BreakData(const int index);
public:
	/* TBaseRecord.Create */ inline __fastcall virtual TVPageBreakRecord(const System::Word aId, const Fmx::Xlsmessages::PArrayOfByte aData, const int aDataSize) : Fmx::Uxlsbaserecords::TBaseRecord(aId, aData, aDataSize) { }
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TVPageBreakRecord(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS THPageBreak;
#pragma pack(push,4)
class PASCALIMPLEMENTATION THPageBreak : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	THBreakData BreakData;
	__fastcall THPageBreak(const THBreakData &aBreakData);
	THPageBreak* __fastcall CopyTo(void);
public:
	/* TObject.Destroy */ inline __fastcall virtual ~THPageBreak(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TVPageBreak;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TVPageBreak : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	TVBreakData BreakData;
	__fastcall TVPageBreak(const TVBreakData &aBreakData);
	TVPageBreak* __fastcall CopyTo(void);
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TVPageBreak(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS THPageBreakList;
#pragma pack(push,4)
class PASCALIMPLEMENTATION THPageBreakList : public Fmx::Uxlsbaselist::TBaseList
{
	typedef Fmx::Uxlsbaselist::TBaseList inherited;
	
public:
	THPageBreak* operator[](int index) { return Items[index]; }
	
private:
	void __fastcall SaveToStreamExt(Fmx::Uole2impl::TOle2File* const DataStream, const int FirstRecord, const int RecordCount);
	void __fastcall CalcIncludedRangeRecords(const Fmx::Uflxmessages::TXlsCellRange &CellRange, /* out */ int &FirstRecord, /* out */ int &RecordCount);
	__int64 __fastcall TotalSizeExt(const int RecordCount);
	THPageBreak* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, THPageBreak* const Value);
	
public:
	__property THPageBreak* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(THPageBreak* aRecord);
	HIDESBASE void __fastcall Insert(int Index, THPageBreak* aRecord);
	
private:
	bool Sorted;
	
public:
	bool __fastcall Find(const int aItem, int &Index);
	HIDESBASE void __fastcall Sort(void);
	void __fastcall AddRecord(THPageBreakRecord* const aRecord);
	void __fastcall AddBreak(const int aRow);
	void __fastcall DeleteBreak(const int aRow);
	void __fastcall CopyFrom(THPageBreakList* const aBreakList);
	void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const DataStream);
	void __fastcall SaveRangeToStream(Fmx::Uole2impl::TOle2File* const DataStream, const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	__int64 __fastcall TotalSize(void);
	__int64 __fastcall TotalRangeSize(const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	void __fastcall InsertRows(const int DestRow, const int aCount);
	void __fastcall DeleteRows(const int DestRow, const int aCount);
	bool __fastcall HasPageBreak(const int Row);
public:
	/* TObjectList.Create */ inline __fastcall THPageBreakList(void)/* overload */ : Fmx::Uxlsbaselist::TBaseList() { }
	/* TObjectList.Create */ inline __fastcall THPageBreakList(bool AOwnsObjects)/* overload */ : Fmx::Uxlsbaselist::TBaseList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~THPageBreakList(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TVPageBreakList;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TVPageBreakList : public Fmx::Uxlsbaselist::TBaseList
{
	typedef Fmx::Uxlsbaselist::TBaseList inherited;
	
public:
	TVPageBreak* operator[](int index) { return Items[index]; }
	
private:
	void __fastcall SaveToStreamExt(Fmx::Uole2impl::TOle2File* const DataStream, const int FirstRecord, const int RecordCount);
	void __fastcall CalcIncludedRangeRecords(const Fmx::Uflxmessages::TXlsCellRange &CellRange, /* out */ int &FirstRecord, /* out */ int &RecordCount);
	__int64 __fastcall TotalSizeExt(const int RecordCount);
	TVPageBreak* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, TVPageBreak* const Value);
	
public:
	__property TVPageBreak* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(TVPageBreak* aRecord);
	HIDESBASE void __fastcall Insert(int Index, TVPageBreak* aRecord);
	
private:
	bool Sorted;
	
public:
	bool __fastcall Find(const int aItem, int &Index);
	HIDESBASE void __fastcall Sort(void);
	void __fastcall AddRecord(TVPageBreakRecord* const aRecord);
	void __fastcall AddBreak(const int aCol);
	void __fastcall DeleteBreak(const int aCol);
	void __fastcall CopyFrom(TVPageBreakList* const aBreakList);
	void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const DataStream);
	void __fastcall SaveRangeToStream(Fmx::Uole2impl::TOle2File* const DataStream, const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	__int64 __fastcall TotalSize(void);
	__int64 __fastcall TotalRangeSize(const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	void __fastcall InsertCols(const int DestCol, const int aCount);
	void __fastcall DeleteCols(const int DestCol, const int aCount);
	bool __fastcall HasPageBreak(const int Col);
public:
	/* TObjectList.Create */ inline __fastcall TVPageBreakList(void)/* overload */ : Fmx::Uxlsbaselist::TBaseList() { }
	/* TObjectList.Create */ inline __fastcall TVPageBreakList(bool AOwnsObjects)/* overload */ : Fmx::Uxlsbaselist::TBaseList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TVPageBreakList(void) { }
	
};

#pragma pack(pop)

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