// Borland C++ Builder
// Copyright (c) 1995, 2002 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'RVClasses.pas' rev: 6.00

#ifndef RVClassesHPP
#define RVClassesHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Graphics.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <RTLConsts.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Rvclasses
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TRVList;
class PASCALIMPLEMENTATION TRVList : public Classes::TList 
{
	typedef Classes::TList inherited;
	
public:
	virtual void __fastcall Clear(void);
	HIDESBASE void __fastcall Delete(int Index);
	void __fastcall DeleteAsPointer(int Index);
	void __fastcall SortPointers(void);
	int __fastcall Find(System::TObject* FindThis, Classes::TListSortCompare CompareProc);
	__fastcall virtual ~TRVList(void);
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRVList(void) : Classes::TList() { }
	#pragma option pop
	
};


class DELPHICLASS TRVListIndexerItem;
class PASCALIMPLEMENTATION TRVListIndexerItem : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	System::TObject* Item;
	int Index;
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRVListIndexerItem(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVListIndexerItem(void) { }
	#pragma option pop
	
};


class DELPHICLASS TRVListIndexer;
class PASCALIMPLEMENTATION TRVListIndexer : public TRVList 
{
	typedef TRVList inherited;
	
public:
	HIDESBASE void __fastcall Sort(void);
	int __fastcall GetItemIndex(System::TObject* Item);
public:
	#pragma option push -w-inl
	/* TRVList.Destroy */ inline __fastcall virtual ~TRVListIndexer(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRVListIndexer(void) : TRVList() { }
	#pragma option pop
	
};


class DELPHICLASS TRVIndexedList;
class PASCALIMPLEMENTATION TRVIndexedList : public TRVList 
{
	typedef TRVList inherited;
	
private:
	TRVListIndexer* FIndexer;
	
public:
	__fastcall TRVIndexedList(void);
	__fastcall virtual ~TRVIndexedList(void);
	void __fastcall CreateIndexer(void);
	HIDESBASE int __fastcall Find(System::TObject* Item);
};


class DELPHICLASS TRVIntegerList;
class PASCALIMPLEMENTATION TRVIntegerList : public Classes::TList 
{
	typedef Classes::TList inherited;
	
public:
	int operator[](int Index) { return Items[Index]; }
	
private:
	HIDESBASE int __fastcall Get(int Index);
	HIDESBASE void __fastcall Put(int Index, const int Value);
	
public:
	__fastcall TRVIntegerList(int Count, int Value);
	__fastcall TRVIntegerList(TRVIntegerList* Source);
	HIDESBASE void __fastcall Sort(void);
	void __fastcall InitWith(int Value, int Count);
	void __fastcall Fill(int Value);
	HIDESBASE void __fastcall Add(int Value);
	bool __fastcall AreAllEqualTo(int Value);
	int __fastcall AddUnique(int Value);
	HIDESBASE void __fastcall Insert(int Index, int Value);
	HIDESBASE void __fastcall Assign(TRVIntegerList* Source);
	__property int Items[int Index] = {read=Get, write=Put/*, default*/};
public:
	#pragma option push -w-inl
	/* TList.Destroy */ inline __fastcall virtual ~TRVIntegerList(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRVIntegerList(void) : Classes::TList() { }
	#pragma option pop
	
};


class DELPHICLASS TRVColorList;
class PASCALIMPLEMENTATION TRVColorList : public TRVIntegerList 
{
	typedef TRVIntegerList inherited;
	
public:
	HIDESBASE void __fastcall AddUnique(int Value);
public:
	#pragma option push -w-inl
	/* TRVIntegerList.CreateEx */ inline __fastcall TRVColorList(int Count, int Value) : TRVIntegerList(Count, Value) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TRVIntegerList.CreateCopy */ inline __fastcall TRVColorList(TRVIntegerList* Source) : TRVIntegerList(Source) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TList.Destroy */ inline __fastcall virtual ~TRVColorList(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRVColorList(void) : TRVIntegerList() { }
	#pragma option pop
	
};


class DELPHICLASS TRVMemoryStream;
class PASCALIMPLEMENTATION TRVMemoryStream : public Classes::TCustomMemoryStream 
{
	typedef Classes::TCustomMemoryStream inherited;
	
private:
	int FCapacity;
	void *FMemory;
	int FSize;
	int FPosition;
	void __fastcall SetCapacity(int NewCapacity);
	
protected:
	virtual void * __fastcall Realloc(int &NewCapacity);
	HIDESBASE void __fastcall SetPointer(void * Ptr, int Size);
	__property int Capacity = {read=FCapacity, write=SetCapacity, nodefault};
	
public:
	__fastcall virtual ~TRVMemoryStream(void);
	void __fastcall Clear(void);
	void __fastcall LoadFromStream(Classes::TStream* Stream);
	void __fastcall LoadFromFile(const AnsiString FileName);
	virtual void __fastcall SetSize(int NewSize)/* overload */;
	virtual int __fastcall Write(const void *Buffer, int Count);
	virtual int __fastcall Read(void *Buffer, int Count);
	virtual int __fastcall Seek(int Offset, Word Origin)/* overload */;
	HIDESBASE void __fastcall SaveToStream(Classes::TStream* Stream);
	HIDESBASE void __fastcall SaveToFile(const AnsiString FileName);
	__property void * Memory = {read=FMemory};
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRVMemoryStream(void) : Classes::TCustomMemoryStream() { }
	#pragma option pop
	
	
/* Hoisted overloads: */
	
protected:
	inline void __fastcall  SetSize(const __int64 NewSize){ TStream::SetSize(NewSize); }
	
public:
	inline __int64 __fastcall  Seek(const __int64 Offset, Classes::TSeekOrigin Origin){ return TStream::Seek(Offset, Origin); }
	
};


//-- var, const, procedure ---------------------------------------------------
static const int RVMemoryDelta = 0x40000;

}	/* namespace Rvclasses */
using namespace Rvclasses;
#pragma option pop	// -w-
#pragma option pop	// -Vx

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