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

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

#ifndef ahmtfileholderHPP
#define ahmtfileholderHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <ahmsystemclass.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Ahmtfileholder
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TAHMStoredFile;
class DELPHICLASS TAHMFileHolder;
class DELPHICLASS TAHMStoredFiles;
class PASCALIMPLEMENTATION TAHMStoredFiles : public Ahmsystemclass::TAHMCollection 
{
	typedef Ahmsystemclass::TAHMCollection inherited;
	
public:
	TAHMStoredFile* operator[](int Index) { return Items[Index]; }
	
private:
	TAHMFileHolder* FAHMFileHolder;
	TAHMStoredFile* __fastcall GetAHMStoredFile(int Index);
	void __fastcall SetAHMStoredFile(int Index, TAHMStoredFile* Value);
	
protected:
	DYNAMIC Classes::TPersistent* __fastcall GetOwner(void);
	
public:
	__fastcall TAHMStoredFiles(TAHMFileHolder* AOwner);
	HIDESBASE TAHMStoredFile* __fastcall Add(void);
	HIDESBASE bool __fastcall Delete(int Index);
	__property TAHMStoredFile* Items[int Index] = {read=GetAHMStoredFile, write=SetAHMStoredFile/*, default*/};
public:
	#pragma option push -w-inl
	/* TCollection.Destroy */ inline __fastcall virtual ~TAHMStoredFiles(void) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TAHMFileHolder : public Ahmsystemclass::TAHMSystemComponent 
{
	typedef Ahmsystemclass::TAHMSystemComponent inherited;
	
private:
	TAHMStoredFiles* FAHMStoredFiles;
	void __fastcall SetAHMStoredFiles(TAHMStoredFiles* Value);
	
public:
	__fastcall virtual TAHMFileHolder(Classes::TComponent* AOwner);
	__fastcall virtual ~TAHMFileHolder(void);
	AnsiString __fastcall SaveToTempFile(int Index);
	void __fastcall SaveToFile(int Index, AnsiString Filename);
	
__published:
	__property TAHMStoredFiles* Files = {read=FAHMStoredFiles, write=SetAHMStoredFiles};
};


class PASCALIMPLEMENTATION TAHMStoredFile : public Classes::TCollectionItem 
{
	typedef Classes::TCollectionItem inherited;
	
private:
	Classes::TMemoryStream* FFileData;
	System::TDateTime FFileDate;
	AnsiString FFileName;
	AnsiString FFilePath;
	int FFileSize;
	TAHMFileHolder* FAHMFileHolder;
	void __fastcall ReadData(Classes::TStream* Stream);
	void __fastcall WriteData(Classes::TStream* Stream);
	bool __fastcall Empty(void);
	void __fastcall SetFileDate(const System::TDateTime Value);
	void __fastcall SetFileName(const AnsiString Value);
	void __fastcall SetFilePath(const AnsiString Value);
	void __fastcall SetFileSize(const int Value);
	
protected:
	virtual AnsiString __fastcall GetDisplayName();
	virtual void __fastcall DefineProperties(Classes::TFiler* Filer);
	
public:
	void __fastcall Clear(void);
	void __fastcall LoadFromFile(AnsiString FileName);
	void __fastcall SaveToFile(AnsiString FileName);
	void __fastcall LoadFromStream(Classes::TStream* Stream);
	void __fastcall SaveToStream(Classes::TStream* Stream);
	AnsiString __fastcall SaveToTempFile();
	__fastcall virtual TAHMStoredFile(Classes::TCollection* Collection);
	virtual void __fastcall Assign(Classes::TPersistent* Source);
	__property TAHMFileHolder* Owner = {read=FAHMFileHolder};
	__property AnsiString DisplayName = {read=GetDisplayName};
	__fastcall virtual ~TAHMStoredFile(void);
	
__published:
	__property System::TDateTime FileDate = {read=FFileDate, write=SetFileDate};
	__property AnsiString NameOfFile = {read=FFileName, write=SetFileName};
	__property AnsiString FilePath = {read=FFilePath, write=SetFilePath};
	__property int FileSize = {read=FFileSize, write=SetFileSize, nodefault};
};


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

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

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