⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memtableeh.hpp

📁 最新的 DBGRIDEH4.0
💻 HPP
📖 第 1 页 / 共 3 页
字号:
// CodeGear C++ Builder
// Copyright (c) 1995, 2007 by CodeGear
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Memtableeh.pas' rev: 11.00

#ifndef MemtableehHPP
#define MemtableehHPP

#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 <Sysutils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Db.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Variants.hpp>	// Pascal unit
#include <Contnrs.hpp>	// Pascal unit
#include <Ehlibvcl.hpp>	// Pascal unit
#include <Toolctrlseh.hpp>	// Pascal unit
#include <Dbcommon.hpp>	// Pascal unit
#include <Memtabledataeh.hpp>	// Pascal unit
#include <Datadrivereh.hpp>	// Pascal unit
#include <Memtreeeh.hpp>	// Pascal unit

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

namespace Memtableeh
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TLoadMode { lmCopy, lmAppend };
#pragma option pop

class DELPHICLASS TMasterDataLinkEh;
class PASCALIMPLEMENTATION TMasterDataLinkEh : public Db::TDetailDataLink 
{
	typedef Db::TDetailDataLink inherited;
	
private:
	Db::TDataSet* FDataSet;
	AnsiString FFieldNames;
	Contnrs::TObjectList* FFields;
	Classes::TNotifyEvent FOnMasterChange;
	Classes::TNotifyEvent FOnMasterDisable;
	void __fastcall SetFieldNames(const AnsiString Value);
	
protected:
	virtual Db::TDataSet* __fastcall GetDetailDataSet(void);
	virtual void __fastcall ActiveChanged(void);
	virtual void __fastcall CheckBrowseMode(void);
	virtual void __fastcall LayoutChanged(void);
	virtual void __fastcall RecordChanged(Db::TField* Field);
	
public:
	__fastcall TMasterDataLinkEh(Db::TDataSet* DataSet);
	__fastcall virtual ~TMasterDataLinkEh(void);
	__property AnsiString FieldNames = {read=FFieldNames, write=SetFieldNames};
	__property Contnrs::TObjectList* Fields = {read=FFields};
	__property Classes::TNotifyEvent OnMasterChange = {read=FOnMasterChange, write=FOnMasterChange};
	__property Classes::TNotifyEvent OnMasterDisable = {read=FOnMasterDisable, write=FOnMasterDisable};
};


class DELPHICLASS TMemTableTreeListEh;
class DELPHICLASS TCustomMemTableEh;
#pragma option push -b-
enum TMasterDetailSideEh { mdsOnSelfEh, mdsOnProviderEh, mdsOnSelfAfterProviderEh };
#pragma option pop

typedef void __fastcall (__closure *TMTTreeNodeExpandingEventEh)(System::TObject* Sender, int RecNo, bool &AllowExpansion);

typedef void __fastcall (__closure *TRecordsViewTreeNodeExpandingEventEh)(System::TObject* Sender, Memtabledataeh::TMemRecViewEh* Node, bool &AllowExpansion);

typedef void __fastcall (__closure *TRecordsViewTreeNodeExpandedEventEh)(System::TObject* Sender, Memtabledataeh::TMemRecViewEh* Node);

typedef bool __fastcall (__closure *TRecordsViewCheckMoveNodeEventEh)(System::TObject* Sender, Memtabledataeh::TMemRecViewEh* SourceNode, Memtabledataeh::TMemRecViewEh* AppointedParent, int AppointedIndex);

class DELPHICLASS TSortedVarlistEh;
class DELPHICLASS TSortedVarItemEh;
class PASCALIMPLEMENTATION TSortedVarlistEh : public Contnrs::TObjectList 
{
	typedef Contnrs::TObjectList inherited;
	
protected:
	bool __fastcall VarInList(const Variant &Value);
	bool __fastcall FindValueIndex(const Variant &Value, int &Index);
	
public:
	HIDESBASE int __fastcall Add(TSortedVarItemEh* AObject);
	HIDESBASE void __fastcall Insert(int Index, TSortedVarItemEh* AObject);
public:
	#pragma option push -w-inl
	/* TObjectList.Create */ inline __fastcall TSortedVarlistEh(void)/* overload */ : Contnrs::TObjectList() { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TList.Destroy */ inline __fastcall virtual ~TSortedVarlistEh(void) { }
	#pragma option pop
	
};


typedef void __fastcall (__closure *TMemTableChangeFieldValueEventEh)(TCustomMemTableEh* MemTable, Db::TField* Field, Variant &Value);

class DELPHICLASS TRecBuf;
class PASCALIMPLEMENTATION TCustomMemTableEh : public Db::TDataSet 
{
	typedef Db::TDataSet inherited;
	
private:
	Contnrs::TObjectList* FRecordCache;
	bool FActive;
	int FAutoInc;
	DynamicArray<int >  FCalcFieldIndexes;
	Datadrivereh::TDataDriverEh* FDataDriver;
	Db::TDataSet* FDataSetReader;
	Contnrs::TObjectList* FDetailFieldList;
	AnsiString FDetailFields;
	bool FDetailMode;
	bool FFetchAllOnOpen;
	Memtabledataeh::TDataSetExprParserEh* FFilterExpr;
	Contnrs::TObjectList* FInstantBuffers;
	int FInstantReadCurRowNum;
	TMasterDetailSideEh FMasterDetailSide;
	Variant FMasterValues;
	TMTTreeNodeExpandingEventEh FOnTreeNodeExpanding;
	TRecordsViewTreeNodeExpandingEventEh FOnRecordsViewTreeNodeExpanding;
	TRecordsViewTreeNodeExpandedEventEh FOnRecordsViewTreeNodeExpanded;
	TRecordsViewCheckMoveNodeEventEh FOnRecordsViewCheckMoveNode;
	Db::TParams* FParams;
	bool FReadOnly;
	int FRecBufSize;
	int FRecordPos;
	Memtabledataeh::TRecordsViewEh* FRecordsView;
	TMemTableTreeListEh* FTreeList;
	Db::TIndexDefs* FIndexDefs;
	bool FStoreDefs;
	Contnrs::TObjectList* FDetailRecList;
	bool FDetailRecListActive;
	Memtabledataeh::TMemTableDataEh* FInternMemTableData;
	TCustomMemTableEh* FExternalMemData;
	int FRecordsViewUpdating;
	bool FRecordsViewUpdated;
	TSortedVarlistEh* FMasterValList;
	AnsiString FSortOrder;
	TMemTableChangeFieldValueEventEh FOnGetFieldValue;
	TMemTableChangeFieldValueEventEh FOnSetFieldValue;
	void __fastcall BeginRecordsViewUpdate(void);
	void __fastcall EndRecordsViewUpdate(bool AutoResync);
	bool __fastcall GetAggregatesActive(void);
	Memtabledataeh::TAutoIncrementEh* __fastcall GetAutoIncrement(void);
	bool __fastcall GetCachedUpdates(void);
	int __fastcall GetDataFieldsCount(void);
	int __fastcall GetInstantReadCurRowNum(void);
	AnsiString __fastcall GetMasterFields();
	Db::TDataSource* __fastcall GetMasterSource(void);
	Memtabledataeh::TMemRecViewEh* __fastcall GetTreeNode(void);
	int __fastcall GetTreeNodeChildCount(void);
	bool __fastcall GetTreeNodeExpanded(void);
	bool __fastcall GetTreeNodeHasChildren(void);
	Memtabledataeh::TUpdateErrorEh* __fastcall GetUpdateError(void);
	HIDESBASE Db::TIndexDefs* __fastcall GetIndexDefs(void);
	char * __fastcall GetInstantBuffer(void);
	bool __fastcall IsRecordInFilter(Memtabledataeh::TMemoryRecordEh* Rec);
	void __fastcall AncestorNotFound(Classes::TReader* Reader, const AnsiString ComponentName, TMetaClass* ComponentClass, Classes::TComponent* &Component);
	void __fastcall ClearRecords(void);
	void __fastcall CreateComponent(Classes::TReader* Reader, TMetaClass* ComponentClass, Classes::TComponent* &Component);
	void __fastcall InitBufferPointers(bool GetProps);
	void __fastcall RefreshParams(void);
	void __fastcall SetAggregatesActive(const bool Value);
	void __fastcall SetAutoIncrement(const Memtabledataeh::TAutoIncrementEh* Value);
	void __fastcall SetCachedUpdates(const bool Value);
	void __fastcall SetDataDriver(const Datadrivereh::TDataDriverEh* Value);
	void __fastcall SetDetailFields(const AnsiString Value);
	void __fastcall SetExternalMemData(TCustomMemTableEh* Value);
	void __fastcall SetMasterDetailSide(const TMasterDetailSideEh Value);
	void __fastcall SetMasterFields(const AnsiString Value);
	void __fastcall SetMasterSource(const Db::TDataSource* Value);
	void __fastcall SetParams(const Db::TParams* Value);
	void __fastcall SetParamsFromCursor(void);
	void __fastcall SetTreeNodeExpanded(const bool Value);
	void __fastcall SetTreeNodeHasChildren(const bool Value);
	void __fastcall SetIndexDefs(Db::TIndexDefs* Value);
	void __fastcall SortData(System::TObject* ParamSort);
	AnsiString __fastcall GetSortOrder();
	void __fastcall SetSortOrder(const AnsiString Value);
	Db::TUpdateStatusSet __fastcall GetStatusFilter(void);
	void __fastcall SetStatusFilter(const Db::TUpdateStatusSet Value);
	void __fastcall SetReadOnly(const bool Value);
	
protected:
	virtual Db::TIndexDefs* __fastcall PSGetIndexDefs(Db::TIndexOptions IndexTypes);
	bool FInstantReadMode;
	TMasterDataLinkEh* FMasterDataLink;
	AnsiString FAutoIncrementFieldName;
	virtual bool __fastcall GetActiveRecBuf(TRecBuf* &RecBuf, bool IsForWrite = false);
	bool __fastcall GetTreeNodeHasChields(void);
	int __fastcall GetTreeNodeLevel(void);
	System::TObject* __fastcall GetRecObject(void);
	int __fastcall GetPrevVisibleTreeNodeLevel(void);
	int __fastcall GetNextVisibleTreeNodeLevel(void);
	bool __fastcall MemTableIsTreeList(void);
	bool __fastcall ParentHasNextSibling(int ParenLevel);
	bool __fastcall IMemTableGetTreeNodeExpanded(int RowNum);
	int __fastcall IMemTableSetTreeNodeExpanded(int RowNum, bool Value);
	Toolctrlseh::_di_IMemTableDataFieldValueListEh __fastcall GetFieldValueList(AnsiString AFieldName);
	void __fastcall RecreateFilterExpr(void);
	void __fastcall DestroyFilterExpr(void);
	virtual char * __fastcall AllocRecordBuffer(void);
	virtual int __fastcall CompareRecords(Memtabledataeh::TMemoryRecordEh* Rec1, Memtabledataeh::TMemoryRecordEh* Rec2, System::TObject* ParamSort);
	virtual int __fastcall CompareTreeNodes(Memtreeeh::TBaseTreeNodeEh* Rec1, Memtreeeh::TBaseTreeNodeEh* Rec2, System::TObject* ParamSort);
	TCustomMemTableEh* __fastcall CreateDeltaDataSet(void);
	int __fastcall DoFetchRecords(int Count);
	Variant __fastcall FieldValueToVarValue(void * FieldBuffer, Db::TField* Field);
	Variant __fastcall GetBlobData(Db::TField* Field, TRecBuf* Buffer);
	int __fastcall BufferToIndex(char * Buf);
	TRecBuf* __fastcall BufferToRecBuf(char * Buf);
	char * __fastcall IndexToBuffer(int I);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -