// CodeGear C++Builder
// Copyright (c) 1995, 2008 by CodeGear
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Rvclasses.pas' rev: 20.00

#ifndef RvclassesHPP
#define RvclassesHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Rtlconsts.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Graphics.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:
	/* TObject.Create */ inline __fastcall TRVList(void) : Classes::TList() { }
	
};


class DELPHICLASS TRVListIndexerItem;
class PASCALIMPLEMENTATION TRVListIndexerItem : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	System::TObject* Item;
	int Index;
public:
	/* TObject.Create */ inline __fastcall TRVListIndexerItem(void) : System::TObject() { }
	/* TObject.Destroy */ inline __fastcall virtual ~TRVListIndexerItem(void) { }
	
};


class DELPHICLASS TRVListIndexer;
class PASCALIMPLEMENTATION TRVListIndexer : public TRVList
{
	typedef TRVList inherited;
	
public:
	HIDESBASE void __fastcall Sort(void);
	int __fastcall GetItemIndex(System::TObject* Item);
public:
	/* TRVList.Destroy */ inline __fastcall virtual ~TRVListIndexer(void) { }
	
public:
	/* TObject.Create */ inline __fastcall TRVListIndexer(void) : TRVList() { }
	
};


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);
	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:
	/* TList.Destroy */ inline __fastcall virtual ~TRVIntegerList(void) { }
	
public:
	/* TObject.Create */ inline __fastcall TRVIntegerList(void) : Classes::TList() { }
	
};


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


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 System::UnicodeString 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, System::Word Origin)/* overload */;
	HIDESBASE void __fastcall SaveToStream(Classes::TStream* Stream);
	HIDESBASE void __fastcall SaveToFile(const System::UnicodeString FileName);
	__property void * Memory = {read=FMemory};
public:
	/* TObject.Create */ inline __fastcall TRVMemoryStream(void) : Classes::TCustomMemoryStream() { }
	
	
/* Hoisted overloads: */
	
protected:
	inline void __fastcall  SetSize(const __int64 NewSize){ Classes::TStream::SetSize(NewSize); }
	
public:
	inline __int64 __fastcall  Seek(const __int64 Offset, Classes::TSeekOrigin Origin){ return Classes::TStream::Seek(Offset, Origin); }
	
};


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

}	/* namespace Rvclasses */
using namespace Rvclasses;
#pragma pack(pop)
#pragma option pop

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