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

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

#ifndef Fmx_UxlscolinfoHPP
#define Fmx_UxlscolinfoHPP

#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.Classes.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <FMX.UXlsBaseRecords.hpp>	// Pascal unit
#include <FMX.UXlsBaseList.hpp>	// Pascal unit
#include <FMX.XlsMessages.hpp>	// Pascal unit
#include <FMX.UFlxMessages.hpp>	// Pascal unit
#include <FMX.UXlsOtherRecords.hpp>	// Pascal unit
#include <FMX.UOle2Impl.hpp>	// Pascal unit
#include <System.Contnrs.hpp>	// Pascal unit

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

namespace Fmx
{
namespace Uxlscolinfo
{
//-- type declarations -------------------------------------------------------
#pragma pack(push,1)
struct DECLSPEC_DRECORD TColInfoDat
{
public:
	System::Word FirstColumn;
	System::Word LastColumn;
	System::Word Width;
	System::Word XF;
	System::Word Options;
	System::Word Reserved;
};
#pragma pack(pop)


typedef TColInfoDat *PColInfoDat;

class DELPHICLASS TColInfo;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TColInfo : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	System::Word Column;
	System::Word Width;
	System::Word XF;
	System::Word Options;
	__fastcall TColInfo(const System::Word aColumn, const System::Word aWidth, const System::Word aXF, const System::Word aOptions);
	bool __fastcall IsEqual(TColInfo* const aColInfo);
	void __fastcall SetColOutlineLevel(int Level);
	int __fastcall GetColOutlineLevel(void);
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TColInfo(void) { }
	
};

#pragma pack(pop)

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

#pragma pack(pop)

class DELPHICLASS TColInfoList;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TColInfoList : public Fmx::Uxlsbaselist::TBaseList
{
	typedef Fmx::Uxlsbaselist::TBaseList inherited;
	
public:
	TColInfo* operator[](int index) { return Items[index]; }
	
private:
	TColInfo* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, TColInfo* const Value);
	
public:
	__property TColInfo* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(TColInfo* aRecord);
	HIDESBASE void __fastcall Insert(int Index, TColInfo* aRecord);
	
private:
	bool Sorted;
	
public:
	bool __fastcall Find(const int aItem, int &Index);
	HIDESBASE void __fastcall Sort(void);
	
private:
	void __fastcall SaveOneRecord(const int i, const int k, Fmx::Uole2impl::TOle2File* const DataStream);
	void __fastcall SaveToStreamExt(Fmx::Uole2impl::TOle2File* const DataStream, const int FirstRecord, const int RecordCount);
	void __fastcall CalcIncludedRangeRecords(const Fmx::Uflxmessages::TXlsCellRange &CellRange, int &FirstRecord, int &RecordCount);
	__int64 __fastcall TotalSizeExt(const int FirstRecord, const int RecordCount);
	
public:
	void __fastcall CopyFrom(TColInfoList* const aColInfoList);
	void __fastcall AddRecord(TColInfoRecord* const R);
	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 ArrangeInsertCols(const int DestCol, const int aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall CopyCols(const int FirstCol, const int LastCol, const int DestCol, const int aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall CalcGuts(Fmx::Uxlsotherrecords::TGutsRecord* const Guts);
public:
	/* TObjectList.Create */ inline __fastcall TColInfoList(void)/* overload */ : Fmx::Uxlsbaselist::TBaseList() { }
	/* TObjectList.Create */ inline __fastcall TColInfoList(bool AOwnsObjects)/* overload */ : Fmx::Uxlsbaselist::TBaseList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TColInfoList(void) { }
	
};

#pragma pack(pop)

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