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

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

#ifndef Fmx_UxlscondfmtHPP
#define Fmx_UxlscondfmtHPP

#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.UXlsBaseRecordLists.hpp>	// Pascal unit
#include <FMX.UXlsOtherRecords.hpp>	// Pascal unit
#include <FMX.XlsMessages.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <FMX.UXlsRangeRecords.hpp>	// Pascal unit
#include <FMX.UXlsTokenArray.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 Uxlscondfmt
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TCondFmtRecord;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TCondFmtRecord : public Fmx::Uxlsotherrecords::TRangeRecord
{
	typedef Fmx::Uxlsotherrecords::TRangeRecord inherited;
	
public:
	/* TBaseRecord.Create */ inline __fastcall virtual TCondFmtRecord(const System::Word aId, const Fmx::Xlsmessages::PArrayOfByte aData, const int aDataSize) : Fmx::Uxlsotherrecords::TRangeRecord(aId, aData, aDataSize) { }
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TCondFmtRecord(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TCFRecord;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TCFRecord : public Fmx::Uxlsbaserecords::TBaseRecord
{
	typedef Fmx::Uxlsbaserecords::TBaseRecord inherited;
	
private:
	System::Byte CfType;
	System::Byte Op;
	System::Word Cce1;
	System::Word Cce2;
	void __fastcall ArrangeTokensInsertRowsAndCols(const int atPos, const int fPos, const int InsRowPos, const int InsRowOffset, const int CopyRowOffset, const int InsColPos, const int InsColOffset, const int CopyColOffset, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	
public:
	__fastcall virtual TCFRecord(const System::Word aId, const Fmx::Xlsmessages::PArrayOfByte aData, const int aDataSize);
	void __fastcall ArrangeInsertRowsAndCols(const int aRowPos, const int aRowCount, const int aColPos, const int aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall ArrangeCopyRowsAndCols(const int RowOffset, const int ColOffset);
public:
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TCFRecord(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TCFRecordList;
class PASCALIMPLEMENTATION TCFRecordList : public Fmx::Uxlsbaserecordlists::TBaseRecordList
{
	typedef Fmx::Uxlsbaserecordlists::TBaseRecordList inherited;
	
public:
	TCFRecord* operator[](int index) { return Items[index]; }
	
private:
	TCFRecord* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, TCFRecord* const Value);
	
public:
	__property TCFRecord* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(TCFRecord* aRecord);
	HIDESBASE void __fastcall Insert(int Index, TCFRecord* aRecord);
	void __fastcall ArrangeInsertRowsAndCols(const int aRowPos, const int aRowCount, const int aColPos, const int aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
public:
	/* TObjectList.Create */ inline __fastcall TCFRecordList(void)/* overload */ : Fmx::Uxlsbaserecordlists::TBaseRecordList() { }
	/* TObjectList.Create */ inline __fastcall TCFRecordList(bool AOwnsObjects)/* overload */ : Fmx::Uxlsbaserecordlists::TBaseRecordList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TCFRecordList(void) { }
	
};


class DELPHICLASS TCondFmt;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TCondFmt : public Fmx::Uxlsrangerecords::TRangeEntry
{
	typedef Fmx::Uxlsrangerecords::TRangeEntry inherited;
	
private:
	System::Word Flag;
	Fmx::Uxlsrangerecords::TExcelRange AllRange;
	TCFRecordList* CFs;
	
protected:
	virtual Fmx::Uxlsrangerecords::TRangeEntry* __fastcall DoCopyTo(void);
	
public:
	__fastcall virtual TCondFmt(void);
	__fastcall virtual ~TCondFmt(void);
	void __fastcall Clear(void);
	virtual void __fastcall LoadFromStream(Fmx::Uole2impl::TOle2File* const DataStream, Fmx::Xlsmessages::TRecordHeader &RecordHeader, Fmx::Uxlsotherrecords::TRangeRecord* const First);
	virtual void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const DataStream);
	virtual void __fastcall SaveRangeToStream(Fmx::Uole2impl::TOle2File* const DataStream, const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	virtual __int64 __fastcall TotalSize(void);
	virtual __int64 __fastcall TotalRangeSize(const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	virtual void __fastcall ArrangeInsertRowsAndCols(const int aRowPos, const int aRowCount, const int aColPos, const int aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	virtual void __fastcall InsertAndCopyRowsOrCols(const int FirstRow, const int LastRow, const int DestRow, const int aCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo, const bool UseCols);
	virtual void __fastcall DeleteRowsOrCols(const System::Word aRow, const System::Word aCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo, const bool UseCols);
};

#pragma pack(pop)

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