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

// (DO NOT EDIT: machine generated header) 'XSSIELogPhyPosition.pas' rev: 28.00 (Windows)

#ifndef XssielogphypositionHPP
#define XssielogphypositionHPP

#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 <System.Contnrs.hpp>	// Pascal unit
#include <System.Math.hpp>	// Pascal unit
#include <XLSUtils5.hpp>	// Pascal unit
#include <XSSIEUtils.hpp>	// Pascal unit
#include <XSSIEDocProps.hpp>	// Pascal unit
#include <XSSIECharRun.hpp>	// Pascal unit
#include <XSSIELogParas.hpp>	// Pascal unit
#include <XSSIEPhyRow.hpp>	// Pascal unit

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

namespace Xssielogphyposition
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TAXWLogPhyPosition;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TAXWLogPhyPosition : public Xssielogparas::TAXWLogPosition
{
	typedef Xssielogparas::TAXWLogPosition inherited;
	
protected:
	bool FParaChanged;
	int FRowIndex;
	Xssiephyrow::TAXWPhyRow* FRow;
	int __fastcall FindRow(int P);
	int __fastcall BOLPos(int R)/* overload */;
	int __fastcall EOLPos(int R)/* overload */;
	int __fastcall EOLPlusPos(int R)/* overload */;
	virtual void __fastcall SetPos(const int Value);
	void __fastcall SetRowFromPos(void);
	
public:
	__fastcall TAXWLogPhyPosition(void);
	HIDESBASE void __fastcall Clear(void);
	void __fastcall SyncRow(void);
	bool __fastcall Valid(void);
	void __fastcall MakeValid(void);
	virtual void __fastcall Reset(Xssielogparas::TAXWLogPara* Para);
	bool __fastcall EqualRow(TAXWLogPhyPosition* LPP);
	bool __fastcall GreaterRow(TAXWLogPhyPosition* LPP);
	bool __fastcall LessRow(TAXWLogPhyPosition* LPP);
	HIDESBASE void __fastcall Assign(TAXWLogPhyPosition* LPP)/* overload */;
	HIDESBASE void __fastcall Assign(Xssielogparas::TAXWLogPara* APara, int ARowIndex)/* overload */;
	virtual void __fastcall Update(void);
	int __fastcall RelativePos(void);
	int __fastcall BOLPos(void)/* overload */;
	int __fastcall EOLPos(void)/* overload */;
	int __fastcall EOLPlusPos(void)/* overload */;
	bool __fastcall RowIsAtBeginningOfPara(void);
	bool __fastcall RowIsAtEndOfPara(void);
	bool __fastcall RowIsAtEndOfDoc(void);
	bool __fastcall RowIsAtBeginningOfDoc(void);
	bool __fastcall HaveNextRow(void);
	bool __fastcall HavePrevRow(void);
	virtual void __fastcall MovePosNext(void);
	virtual void __fastcall MovePosPrev(void);
	virtual bool __fastcall MoveRowNext(void);
	virtual bool __fastcall MoveRowPrev(void);
	virtual void __fastcall MoveParaNext(void);
	virtual void __fastcall MoveParaPrev(void);
	virtual void __fastcall MoveToBOL(void);
	virtual void __fastcall MoveToEOLPlus(void);
	virtual void __fastcall MoveToEndOfPara(void);
	virtual void __fastcall MoveToBeginningOfPara(void);
	virtual void __fastcall MoveToEndOfDoc(void);
	virtual void __fastcall MoveToBeginningOfDoc(void);
	virtual void __fastcall MoveToPos(TAXWLogPhyPosition* Pos)/* overload */;
	virtual void __fastcall MoveToPos(Xssielogparas::TAXWLogPosition* Pos)/* overload */;
	__property Xssiephyrow::TAXWPhyRow* Row = {read=FRow};
	__property int RowIndex = {read=FRowIndex, nodefault};
	__property bool ParaChanged = {read=FParaChanged, nodefault};
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TAXWLogPhyPosition(void) { }
	
	/* Hoisted overloads: */
	
public:
	inline void __fastcall  Assign(Xssielogparas::TAXWLogPosition* LPP){ Xssielogparas::TAXWLogPosition::Assign(LPP); }
	inline void __fastcall  Assign(Xssielogparas::TAXWLogPara* APara){ Xssielogparas::TAXWLogPosition::Assign(APara); }
	
};

#pragma pack(pop)

class DELPHICLASS TAXWEventLogPhyPosition;
class PASCALIMPLEMENTATION TAXWEventLogPhyPosition : public TAXWLogPhyPosition
{
	typedef TAXWLogPhyPosition inherited;
	
private:
	void __fastcall SetPosChangeEvent(const System::Classes::TNotifyEvent Value);
	
protected:
	System::Classes::TNotifyEvent FBeforePosChangeEvent;
	System::Classes::TNotifyEvent FPosChangeEvent;
	Xssielogparas::TAXWLogPara* FOldPara;
	int FOldRowIndex;
	int FOldPos;
	
public:
	__fastcall TAXWEventLogPhyPosition(void);
	virtual void __fastcall Reset(Xssielogparas::TAXWLogPara* Para);
	void __fastcall UpdatePosRelative(int RelativePos);
	void __fastcall BeforeMove(void);
	void __fastcall AfterMove(void);
	void __fastcall AfterMoveKeepPos(void);
	virtual void __fastcall MovePosNext(void);
	virtual void __fastcall MovePosPrev(void);
	virtual bool __fastcall MoveRowNext(void);
	virtual bool __fastcall MoveRowPrev(void);
	virtual void __fastcall MoveParaNext(void);
	virtual void __fastcall MoveParaPrev(void);
	virtual void __fastcall MoveToBOL(void);
	virtual void __fastcall MoveToEOLPlus(void);
	virtual void __fastcall MoveToEndOfPara(void);
	virtual void __fastcall MoveToBeginningOfPara(void);
	virtual void __fastcall MoveToEndOfDoc(void);
	virtual void __fastcall MoveToBeginningOfDoc(void);
	virtual void __fastcall MoveToPos(TAXWLogPhyPosition* Pos)/* overload */;
	virtual void __fastcall MoveToPos(Xssielogparas::TAXWLogPosition* Pos)/* overload */;
	__property int OldPos = {read=FOldPos, nodefault};
	__property System::Classes::TNotifyEvent OnPosChange = {read=FPosChangeEvent, write=SetPosChangeEvent};
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TAXWEventLogPhyPosition(void) { }
	
};


//-- var, const, procedure ---------------------------------------------------
}	/* namespace Xssielogphyposition */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_XSSIELOGPHYPOSITION)
using namespace Xssielogphyposition;
#endif
#pragma pack(pop)
#pragma option pop

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