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

// (DO NOT EDIT: machine generated header) 'ABSEdit.pas' rev: 35.00 (Windows)

#ifndef AbseditHPP
#define AbseditHPP

#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>
#include <SysInit.hpp>
#include <System.Classes.hpp>
#include <Data.DB.hpp>
#include <Vcl.Dialogs.hpp>
#include <Vcl.Forms.hpp>
#include <System.SysUtils.hpp>
#include <ABSFldLinks.hpp>
#include <ABSMain.hpp>
#include <ABSConst.hpp>
#include <DesignIntf.hpp>
#include <DesignEditors.hpp>
#include <System.Variants.hpp>

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

namespace Absedit
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TABSFieldLinkProperty;
class DELPHICLASS TABSDBStringProperty;
class DELPHICLASS TABSIndexFieldNamesProperty;
class DELPHICLASS TABSIndexNameProperty;
class DELPHICLASS TABSTableNameProperty;
class DELPHICLASS TABSDatabaseNameProperty;
class DELPHICLASS TABSDatabaseFileNameProperty;
class DELPHICLASS TABSSessionNameProperty;
//-- type declarations -------------------------------------------------------
#pragma pack(push,4)
class PASCALIMPLEMENTATION TABSFieldLinkProperty : public Absfldlinks::TABSBaseFieldLinkProperty
{
	typedef Absfldlinks::TABSBaseFieldLinkProperty inherited;
	
private:
	Absmain::TABSTable* FTable;
	
protected:
	virtual void __fastcall GetFieldNamesForIndex(System::Classes::TStrings* List);
	virtual bool __fastcall GetIndexBased();
	virtual Data::Db::TIndexDefs* __fastcall GetIndexDefs();
	virtual System::AnsiString __fastcall GetIndexFieldNames();
	virtual System::AnsiString __fastcall GetIndexName();
	virtual System::AnsiString __fastcall GetMasterFields();
	virtual void __fastcall SetIndexFieldNames(const System::AnsiString Value);
	virtual void __fastcall SetIndexName(const System::AnsiString Value);
	virtual void __fastcall SetMasterFields(const System::AnsiString Value);
	
public:
	virtual void __fastcall Edit();
	__property bool IndexBased = {read=GetIndexBased, nodefault};
	__property Data::Db::TIndexDefs* IndexDefs = {read=GetIndexDefs};
	__property System::AnsiString IndexFieldNames = {read=GetIndexFieldNames, write=SetIndexFieldNames};
	__property System::AnsiString IndexName = {read=GetIndexName, write=SetIndexName};
	__property System::AnsiString MasterFields = {read=GetMasterFields, write=SetMasterFields};
public:
	/* TABSBaseFieldLinkProperty.CreateWith */ inline __fastcall virtual TABSFieldLinkProperty(Data::Db::TDataSet* ADataSet) : Absfldlinks::TABSBaseFieldLinkProperty(ADataSet) { }
	
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TABSFieldLinkProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : Absfldlinks::TABSBaseFieldLinkProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TABSFieldLinkProperty() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TABSDBStringProperty : public Designeditors::TStringProperty
{
	typedef Designeditors::TStringProperty inherited;
	
public:
	virtual Designintf::TPropertyAttributes __fastcall GetAttributes();
	virtual void __fastcall GetValueList(System::Classes::TStrings* List);
	virtual void __fastcall GetValues(System::Classes::TGetStrProc Proc);
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TABSDBStringProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : Designeditors::TStringProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TABSDBStringProperty() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TABSIndexFieldNamesProperty : public TABSDBStringProperty
{
	typedef TABSDBStringProperty inherited;
	
public:
	virtual void __fastcall GetValueList(System::Classes::TStrings* List);
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TABSIndexFieldNamesProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : TABSDBStringProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TABSIndexFieldNamesProperty() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TABSIndexNameProperty : public TABSDBStringProperty
{
	typedef TABSDBStringProperty inherited;
	
public:
	virtual void __fastcall GetValueList(System::Classes::TStrings* List);
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TABSIndexNameProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : TABSDBStringProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TABSIndexNameProperty() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TABSTableNameProperty : public TABSDBStringProperty
{
	typedef TABSDBStringProperty inherited;
	
public:
	virtual void __fastcall GetValueList(System::Classes::TStrings* List);
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TABSTableNameProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : TABSDBStringProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TABSTableNameProperty() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TABSDatabaseNameProperty : public TABSDBStringProperty
{
	typedef TABSDBStringProperty inherited;
	
public:
	virtual void __fastcall GetValueList(System::Classes::TStrings* List);
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TABSDatabaseNameProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : TABSDBStringProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TABSDatabaseNameProperty() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TABSDatabaseFileNameProperty : public Designeditors::TStringProperty
{
	typedef Designeditors::TStringProperty inherited;
	
public:
	virtual void __fastcall Edit();
	virtual Designintf::TPropertyAttributes __fastcall GetAttributes();
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TABSDatabaseFileNameProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : Designeditors::TStringProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TABSDatabaseFileNameProperty() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TABSSessionNameProperty : public TABSDBStringProperty
{
	typedef TABSDBStringProperty inherited;
	
public:
	virtual void __fastcall GetValueList(System::Classes::TStrings* List);
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TABSSessionNameProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : TABSDBStringProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TABSSessionNameProperty() { }
	
};

#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
extern DELPHI_PACKAGE System::Classes::TPersistent* __fastcall GetPropertyValue(System::Classes::TPersistent* Instance, const System::AnsiString PropName);
}	/* namespace Absedit */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_ABSEDIT)
using namespace Absedit;
#endif
#pragma pack(pop)
#pragma option pop

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