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

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

#ifndef Fmx_UxlshyperlinkHPP
#define Fmx_UxlshyperlinkHPP

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

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

namespace Fmx
{
namespace Uxlshyperlink
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS THLinkRecord;
class DELPHICLASS TScreenTipRecord;
#pragma pack(push,4)
class PASCALIMPLEMENTATION THLinkRecord : public Fmx::Uxlsbaserecords::TBaseRecord
{
	typedef Fmx::Uxlsbaserecords::TBaseRecord inherited;
	
private:
	TScreenTipRecord* Hint;
	System::UnicodeString __fastcall ReadString(int &Pos, const int OptMask, const int ByteSize);
	System::UnicodeString __fastcall ReadLocalFile(int &Pos);
	void __fastcall SetString(int &Pos, const int OptMask, const System::UnicodeString value);
	void __fastcall SetString2(int &Pos, const Fmx::Xlsmessages::PArrayOfByte GUID, const System::UnicodeString value, const int ByteCount);
	void __fastcall SetLocalFile(int &Pos, const System::UnicodeString value);
	bool __fastcall IsUrl(int pos);
	bool __fastcall IsFile(int pos);
	bool __fastcall IsUNC(int pos);
	System::UnicodeString __fastcall GetText(int &pos, Fmx::Uflxmessages::THyperLinkType &HType);
	void __fastcall SetText(int &pos, System::UnicodeString Text, Fmx::Uflxmessages::THyperLinkType HType);
	void __fastcall ClearData(void);
	int __fastcall GetFirstRow(void);
	int __fastcall GetLastRow(void);
	int __fastcall GetFirstCol(void);
	int __fastcall GetLastCol(void);
	int __fastcall GetOptionFlags(void);
	void __fastcall SetFirstRow(int Value);
	void __fastcall SetLastRow(int Value);
	void __fastcall SetFirstCol(int Value);
	void __fastcall SetLastCol(int Value);
	void __fastcall SetOptionFlags(int Value);
	
protected:
	virtual Fmx::Uxlsbaserecords::TBaseRecord* __fastcall DoCopyTo(void);
	
public:
	void __fastcall AddHint(TScreenTipRecord* const aHint);
	__fastcall virtual THLinkRecord(const System::Word aId, const Fmx::Xlsmessages::PArrayOfByte aData, const int aDataSize);
	__fastcall THLinkRecord(const Fmx::Uflxmessages::TXlsCellRange &CellRange, const Fmx::Uflxmessages::THyperLink &HLink);
	__fastcall virtual ~THLinkRecord(void);
	__property int FirstRow = {read=GetFirstRow, write=SetFirstRow, nodefault};
	__property int LastRow = {read=GetLastRow, write=SetLastRow, nodefault};
	__property int FirstCol = {read=GetFirstCol, write=SetFirstCol, nodefault};
	__property int LastCol = {read=GetLastCol, write=SetLastCol, nodefault};
	__property int OptionFlags = {read=GetOptionFlags, write=SetOptionFlags, nodefault};
	virtual void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const Workbook);
	void __fastcall SaveRangeToStream(Fmx::Uole2impl::TOle2File* const Workbook, const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	int __fastcall TotalRangeSize(const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	virtual int __fastcall TotalSize(void);
	virtual int __fastcall TotalSizeNoHeaders(void);
	Fmx::Uflxmessages::THyperLink __fastcall GetProperties(void);
	void __fastcall SetProperties(const Fmx::Uflxmessages::THyperLink &value);
	Fmx::Uflxmessages::TXlsCellRange __fastcall GetCellRange(void);
	void __fastcall SetCellRange(const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	void __fastcall ArrangeInsertRange(const Fmx::Uflxmessages::TXlsCellRange &CellRange, int aRowCount, int aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	THLinkRecord* __fastcall Offset(int DeltaRow, int DeltaCol);
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TScreenTipRecord : public Fmx::Uxlsbaserecords::TBaseRecord
{
	typedef Fmx::Uxlsbaserecords::TBaseRecord inherited;
	
protected:
	int __fastcall GetFirstRow(void);
	int __fastcall GetLastRow(void);
	int __fastcall GetFirstCol(void);
	int __fastcall GetLastCol(void);
	System::UnicodeString __fastcall GetText(void);
	void __fastcall SetFirstRow(int Value);
	void __fastcall SetLastRow(int Value);
	void __fastcall SetFirstCol(int Value);
	void __fastcall SetLastCol(int Value);
	void __fastcall SetText(System::UnicodeString Value);
	
public:
	__fastcall virtual TScreenTipRecord(const System::Word aId, const Fmx::Xlsmessages::PArrayOfByte aData, const int aDataSize);
	__fastcall TScreenTipRecord(System::UnicodeString aDescription);
	__property int FirstRow = {read=GetFirstRow, write=SetFirstRow, nodefault};
	__property int LastRow = {read=GetLastRow, write=SetLastRow, nodefault};
	__property int FirstCol = {read=GetFirstCol, write=SetFirstCol, nodefault};
	__property int LastCol = {read=GetLastCol, write=SetLastCol, nodefault};
	__property System::UnicodeString Text = {read=GetText, write=SetText};
public:
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TScreenTipRecord(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS THLinkList;
#pragma pack(push,4)
class PASCALIMPLEMENTATION THLinkList : public Fmx::Uxlsbaselist::TBaseList
{
	typedef Fmx::Uxlsbaselist::TBaseList inherited;
	
public:
	THLinkRecord* operator[](int index) { return Items[index]; }
	
private:
	THLinkRecord* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, THLinkRecord* const Value);
	
public:
	__property THLinkRecord* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(THLinkRecord* aRecord);
	HIDESBASE void __fastcall Insert(int Index, THLinkRecord* aRecord);
	
private:
	bool Sorted;
	
public:
	HIDESBASE void __fastcall Sort(void);
	void __fastcall CopyFrom(THLinkList* aHLinkList);
	void __fastcall CopyObjectsFrom(THLinkList* aHLinkList, const Fmx::Uflxmessages::TXlsCellRange &CopyRange, int RowOfs, int ColOfs);
	void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* DataStream);
	void __fastcall SaveRangeToStream(Fmx::Uole2impl::TOle2File* DataStream, const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	__int64 __fastcall TotalSize(void);
	__int64 __fastcall TotalRangeSize(const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	void __fastcall InsertAndCopyRange(const Fmx::Uflxmessages::TXlsCellRange &SourceRange, int DestRow, int DestCol, int aRowCount, int aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall DeleteRange(const Fmx::Uflxmessages::TXlsCellRange &CellRange, int aRowCount, int aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
public:
	/* TObjectList.Create */ inline __fastcall THLinkList(void)/* overload */ : Fmx::Uxlsbaselist::TBaseList() { }
	/* TObjectList.Create */ inline __fastcall THLinkList(bool AOwnsObjects)/* overload */ : Fmx::Uxlsbaselist::TBaseList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~THLinkList(void) { }
	
};

#pragma pack(pop)

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