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

// (DO NOT EDIT: machine generated header) 'SMRDMan.pas' rev: 37.00 (Windows)

#ifndef SMRDManHPP
#define SMRDManHPP

#pragma delphiheader begin
#pragma option push
#if defined(__BORLANDC__) && !defined(__clang__)
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#endif
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <System.Classes.hpp>
#include <Data.DB.hpp>

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

namespace Smrdman
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TSMRDataset;
class DELPHICLASS TSMRDatasets;
class DELPHICLASS TSMRDataManager;
//-- type declarations -------------------------------------------------------
#pragma pack(push,4)
class PASCALIMPLEMENTATION TSMRDataset : public System::Classes::TCollectionItem
{
	typedef System::Classes::TCollectionItem inherited;
	
private:
	Data::Db::TDataSet* FDataset;
	System::UnicodeString FCaption;
	Data::Db::TDataSet* __fastcall GetDataset();
	void __fastcall SetDataset(Data::Db::TDataSet* Value);
	
public:
	__fastcall virtual TSMRDataset(System::Classes::TCollection* Collection);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property Data::Db::TDataSet* Dataset = {read=GetDataset, write=SetDataset};
	__property System::UnicodeString Caption = {read=FCaption, write=FCaption};
public:
	/* TCollectionItem.Destroy */ inline __fastcall virtual ~TSMRDataset() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TSMRDatasets : public System::Classes::TCollection
{
	typedef System::Classes::TCollection inherited;
	
public:
	TSMRDataset* operator[](int Index) { return this->Items[Index]; }
	
private:
	System::Classes::TComponent* FSMRDManager;
	TSMRDataset* __fastcall GetDataset(int Index);
	void __fastcall SetDataset(int Index, TSMRDataset* Value);
	
protected:
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner();
	
public:
	__fastcall TSMRDatasets(System::Classes::TComponent* AManager);
	HIDESBASE TSMRDataset* __fastcall Add();
	TSMRDataset* __fastcall ItemByDataset(Data::Db::TDataSet* DS);
	__property System::Classes::TComponent* Manager = {read=FSMRDManager};
	__property TSMRDataset* Items[int Index] = {read=GetDataset, write=SetDataset/*, default*/};
public:
	/* TCollection.Destroy */ inline __fastcall virtual ~TSMRDatasets() { }
	
};

#pragma pack(pop)

typedef void __fastcall (__closure *TSMRDQueryBuilder)(System::TObject* Sender, System::UnicodeString &SQL);

class PASCALIMPLEMENTATION TSMRDataManager : public System::Classes::TComponent
{
	typedef System::Classes::TComponent inherited;
	
private:
	TSMRDatasets* FDatasets;
	TSMRDQueryBuilder FOnQueryBuilder;
	void __fastcall SetDatasets(TSMRDatasets* Value);
	
public:
	__fastcall virtual TSMRDataManager(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TSMRDataManager();
	void __fastcall FillDatasetList(System::Classes::TComponent* AOwner, Data::Db::TDataSet* DS);
	
__published:
	__property TSMRDatasets* Datasets = {read=FDatasets, write=SetDatasets};
	__property TSMRDQueryBuilder OnQueryBuilder = {read=FOnQueryBuilder, write=FOnQueryBuilder};
};


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

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