// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'UExcelRecords.pas' rev: 5.00

#ifndef UExcelRecordsHPP
#define UExcelRecordsHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <UFlxMessages.hpp>	// Pascal unit
#include <UXlsBaseList.hpp>	// Pascal unit
#include <UXlsWorkbookGlobals.hpp>	// Pascal unit
#include <UXlsSheet.hpp>	// Pascal unit
#include <UXlsClientData.hpp>	// Pascal unit
#include <UXlsEscher.hpp>	// Pascal unit
#include <UXlsFormula.hpp>	// Pascal unit
#include <USheetNameList.hpp>	// Pascal unit
#include <UXlsReferences.hpp>	// Pascal unit
#include <UXlsSST.hpp>	// Pascal unit
#include <UXlsOtherRecords.hpp>	// Pascal unit
#include <UXlsBaseRecordLists.hpp>	// Pascal unit
#include <UXlsBaseRecords.hpp>	// Pascal unit
#include <XlsMessages.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Contnrs.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Uexcelrecords
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TSheetList;
class PASCALIMPLEMENTATION TSheetList : public Uxlsbaselist::TBaseList 
{
	typedef Uxlsbaselist::TBaseList inherited;
	
private:
	Uxlssheet::TSheet* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, const Uxlssheet::TSheet* Value);
	
public:
	__property Uxlssheet::TSheet* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(Uxlssheet::TSheet* aRecord);
	HIDESBASE void __fastcall Insert(int Index, Uxlssheet::TSheet* aRecord);
	void __fastcall SaveToStream(const Classes::TStream* 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 Xlsmessages::TSheetInfo &SheetInfo, const bool OnlyFormulas);
	void __fastcall DeleteRowsAndCols(const Word aRow, const Word aRowCount, const Word aCol, const Word 
		aColCount, const Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall DeleteSheets(const int SheetIndex, const int SheetCount);
public:
	#pragma option push -w-inl
	/* TObjectList.Create */ inline __fastcall TSheetList(void)/* overload */ : Uxlsbaselist::TBaseList(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TList.Destroy */ inline __fastcall virtual ~TSheetList(void) { }
	#pragma option pop
	
};


class DELPHICLASS TWorkbook;
class PASCALIMPLEMENTATION TWorkbook : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Uxlsworkbookglobals::TWorkbookGlobals* FGlobals;
	TSheetList* FSheets;
	void __fastcall FixBoundSheetsOffset(void);
	Uxlssheet::TWorkSheet* __fastcall GetWorkSheets(int index);
	int __fastcall GetActiveSheet(void);
	void __fastcall SetActiveSheet(const int Value);
	void __fastcall FixRangeBoundSheetsOffset(const int SheetIndex, const Uflxmessages::TXlsCellRange &
		CellRange);
	void __fastcall FixCodeNames(void);
	
public:
	__property Uxlsworkbookglobals::TWorkbookGlobals* Globals = {read=FGlobals, write=FGlobals};
	__property TSheetList* Sheets = {read=FSheets, write=FSheets};
	bool __fastcall IsWorksheet(const int Index);
	__property Uxlssheet::TWorkSheet* WorkSheets[int index] = {read=GetWorkSheets};
	__property int ActiveSheet = {read=GetActiveSheet, write=SetActiveSheet, nodefault};
	__fastcall TWorkbook(void);
	__fastcall virtual ~TWorkbook(void);
	void __fastcall LoadFromStream(const Classes::TStream* DataStream);
	void __fastcall SaveToStream(const Classes::TStream* DataStream);
	void __fastcall SaveRangeToStream(const Classes::TStream* DataStream, const int SheetIndex, const Uflxmessages::TXlsCellRange 
		&CellRange);
	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 Byte SheetNo, const Word aRow, const Word aRowCount, const 
		Word aCol, const Word aColCount);
	void __fastcall InsertSheets(const int CopyFrom, const int InsertBefore, Byte SheetCount);
	void __fastcall DeleteSheets(const int SheetPos, const int SheetCount);
	void __fastcall InsertHPageBreak(const Byte SheetNo, const Word aRow);
	void __fastcall InsertVPageBreak(const Byte SheetNo, const Word aCol);
};


//-- var, const, procedure ---------------------------------------------------

}	/* namespace Uexcelrecords */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Uexcelrecords;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

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