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.


  • 相关阅读:
    MySQLdb 部署
    python 操作python
    python 面向对象(进阶篇)
    Python 面向对象(初级篇)
    Apache环境下强制http跳转至https的配置总结
    linux Apache设置https访问以及加载mod_ssl.so模块以及问题解决
    使用dd命令快速生成大文件或者小文件的方法
    Let’s Encrypt/Certbot移除/remove/revoke不需要的域名证书
    Vsphere中ESXi主机ssh开启的三种方法
    RackTables在LNMP系统的安装及使用
  • 原文地址:https://www.cnblogs.com/tongy0/p/2121130.html
Copyright © 2011-2022 走看看