zoukankan      html  css  js  c++  java
  • TcxCustomDataSource



    unit cmpxxxxxx;

    interface

    uses
      Variants, Classes, cxCustomData, cxGridTableView, SysUtils, ...;

    type
      // ...


      TxxxDataSource = class(TcxCustomDataSource)
      private
        //... some private members here.

      //... some private method or function here.
      protected
        function GetRecordCount: Integer; override;
        function GetValue(ARecordHandle: TcxDataRecordHandle;
          AItemHandle: TcxDataItemHandle): Variant; override;
        procedure SetValue(ARecordHandle: TcxDataRecordHandle;
          AItemHandle: TcxDataItemHandle; const AValue: Variant); override;
      public
        constructor Create(AAllObjects: TRes; ADataInfos: TDI);
        function AppendRecord: TcxDataRecordHandle; override;
        function InsertRecord(ARecordHandle: TcxDataRecordHandle): TcxDataRecordHandle; override;
        procedure DeleteRecord(ARecordHandle: TcxDataRecordHandle); override;
        procedure RefreshRecord(pTopIndex: Integer);
        //... some properties here
      end;


      TxxxDataSource = class(TcxCustomDataSource)
      private
        //...
      protected
        function InsertRecord(ARecordHandle: TcxDataRecordHandle): TcxDataRecordHandle; override;
        function AppendRecord: TcxDataRecordHandle; override;
        procedure DeleteRecord(ARecordHandle: TcxDataRecordHandle); override;
        function GetResourceValue(pResource: TUOResource; ARecordHandle: TcxDataRecordHandle;
          AItemHandle: TcxDataItemHandle): Variant;
        procedure SetResourceValue(pResource: TRes; ARecordHandle: TcxDataRecordHandle;
          AItemHandle: TcxDataItemHandle; const AValue: Variant);
        function GetRecordCount: Integer; override;
        function GetValue(ARecordHandle: TcxDataRecordHandle;
          AItemHandle: TcxDataItemHandle): Variant; override;
        procedure SetValue(ARecordHandle: TcxDataRecordHandle;
          AItemHandle: TcxDataItemHandle; const AValue: Variant); override;
      public
        constructor Create(ASelectResource: TRes; ADataInfos: TDI);
        //...
      end;

    implementation

    { TxxxDataSource }

    function TxxxDataSource.AppendRecord: TcxDataRecordHandle;
    begin
    //
    end;

    constructor TxxxDataSource.Create(AAllObjects: TRes;
      ADataInfos: TDI);
    begin
      inherited Create;
      FAllObjects := AAllObjects;
      FDataInfos := ADataInfos;
    end;

    procedure TxxxDataSource.DeleteRecord(
      ARecordHandle: TcxDataRecordHandle);
    begin
      inherited;
    end;

    function TxxxDataSource.InsertRecord(
      ARecordHandle: TcxDataRecordHandle): TcxDataRecordHandle;
    begin
    //
    end;

    function TxxxDataSource.GetRecordCount: Integer;
    begin
      Result := FAllObjects.Count;
    end;

    function TxxxDataSource.GetValue(
      ARecordHandle: TcxDataRecordHandle;
      AItemHandle: TcxDataItemHandle): Variant;
    var
      lObj: TObj;
      lColumnId: Integer;
      Index: Integer;
      lDataInfo: TDI;
      lPos: Integer;
    begin
      if FAllObjects.Count <= 0 then exit;
      if not (FAllObjects.Items[Integer(ARecordHandle)] is TObj) then
      begin
        Result := GetResourceValue(FAllObjects.Items[Integer(ARecordHandle)], ARecordHandle, AItemHandle);
        Exit;
      end;

      lObj:= TObj(FAllObjects.Items[Integer(ARecordHandle)]);
      lColumnId := GetDefaultItemID(Integer(AItemHandle));
      case lColumnId of
        0: Result := Integer(Pointer(lObj));
        1: Result := lObj.IsSelect;
        ...
      end;
    end;

    end.


  • 相关阅读:
    Spring Boot中通过CORS解决跨域问题
    使用aop注解实现表单防重复提交功能
    Springboot分别使用乐观锁和分布式锁(基于redisson)完成高并发防超卖
    关于日期格式yyyy-MM-dd和YYYY-MM-dd
    基于Java8的日期时间工具类DateTimeFormatter
    Springboot 配置 ssl 实现HTTPS 请求 & Tomcat配置SSL支持https请求
    springboot+layui实现PC端用户的增删改查 & 整合mui实现app端的自动登录和用户的上拉加载 & HBuilder打包app并在手机端下载安装
    Springboot的日志管理&Springboot整合Junit测试&Springboot中AOP的使用
    Springboot实体类转JSON报错Could not find acceptable representation & 设置访问项目根路径的默认欢迎页面
    SpringMVC 使用@ResponseBody返回json 中文乱码与返回实体类报错
  • 原文地址:https://www.cnblogs.com/tongy0/p/2121130.html
Copyright © 2011-2022 走看看