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

📄 unboundlistdemoclasses.cpp

📁 DevExpress ExpressQuantumGrid Suite v5.9 Full Source
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "UnboundListDemoClasses.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)


String TCustomer::GetDescription()
{
  return(FDescription);
}

void TCustomer::SetDescription(String Value)
{
  if(FDescription != Value)
    FDescription = Value;
}

String TCustomer::GetName()
{
  return(FName);
}

void TCustomer::SetName(String Value)
{
  if(FName != Value)
    FName = Value;
}
void TCustomer::SetID(int Value)
{
  if (FID != Value)
    FID = Value;
}

void TCustomerList::ReleaseAllCustomers()
{
  for(int i = 0; i < Count; i++)
    ReleaseCustomer(i);
  FList->Clear();
}

void TCustomerList::ReleaseCustomer(int AIndex)
{
  delete (TCustomer*) FList->Items[AIndex];
}

TCustomer* TCustomerList::GetCustomer(int AIndex)
{
  return (TCustomer*) FList->Items[AIndex];
}

int TCustomerList::GetCount()
{
  return(FList->Count);
}

TCustomerList::TCustomerList()
{
  FList = new TList();
  FNextID = 1;
}

TCustomerList::~TCustomerList()
{
  ReleaseAllCustomers();
  delete FList;
}

void TCustomerList::Clear()
{
  ReleaseAllCustomers();
}

int TCustomerList::Add(TCustomer* Customer)
{
  int Res;
  Res = FList->Add(Customer);
  FNextID++;
  return (Res);
}

void TCustomerList::Delete(int AIndex)
{
  ReleaseCustomer(AIndex);
  FList->Delete(AIndex);
}

void TCustomerList::Insert(int AIndex, TCustomer* Customer)
{
  FList->Insert(AIndex, Customer);
  FNextID++;
}

void __fastcall TCustomerDataSource::DeleteRecord(void * ARecordHandle)
{
  FCustomers->Delete((int)ARecordHandle);
  DataChanged();
  if(!Modified)
    FModified = true;
}

int __fastcall TCustomerDataSource::GetRecordCount(void)
{
  return(FCustomers->Count);
}

Variant __fastcall TCustomerDataSource::GetValue(void * ARecordHandle, void * AItemHandle)
{
  int AColumnId = GetDefaultItemID((int)AItemHandle);
  TCustomer* ACustomer = FCustomers->Customers[(int)ARecordHandle];
  Variant Result;
  switch (AColumnId) {
    case IndexOfID:
      Result = ACustomer->ID; break;
    case IndexOfName:
      Result = ACustomer->Name; break;
    case IndexOfDescription:
      Result = ACustomer->Description; break;
  }
  return (Result);
}

void * __fastcall TCustomerDataSource::InsertRecord(void * ARecordHandle)
{
  TCustomer* ACustomer = new TCustomer(FCustomers->NextID);
  FCustomers->Insert((int)ARecordHandle, ACustomer);
  TcxDataRecordHandle* Result = (TcxDataRecordHandle*)ARecordHandle;
  DataChanged();
  if(!Modified)
    FModified = true;
  return (Result);
}

void * __fastcall TCustomerDataSource::AppendRecord(void)
{
  TCustomer* ACustomer = new TCustomer(FCustomers->NextID);
  TcxDataRecordHandle* Result = (TcxDataRecordHandle*)FCustomers->Add(ACustomer);
  DataChanged();
  if (!Modified)
    FModified = true;
  return (Result);
}

void __fastcall TCustomerDataSource::SetValue(void * ARecordHandle, void * AItemHandle, const Variant &AValue)
{
  int AColumnId = GetDefaultItemID((int)AItemHandle);
  TCustomer* ACustomer = FCustomers->Customers[(int)ARecordHandle];
  switch (AColumnId) {
    case IndexOfID:
      if (VarIsNull(AValue))
        ACustomer->ID = 0;
      else
	ACustomer->ID = AValue; 
      break;
    case IndexOfName:
      ACustomer->Name = VarToStr(AValue); break;
    case IndexOfDescription:
      ACustomer->Description = VarToStr(AValue); break;
  }
  if (!Modified)
    FModified = true;
}


⌨️ 快捷键说明

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