MdDsList.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:1k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit MdDsList;
  2. interface
  3. uses
  4.   DB, Classes, SysUtils, Windows, Forms, Contnrs, MdDsCustom;
  5. type
  6.   TMdListDataSet = class (TMdCustomDataSet)
  7.   protected
  8.     // the list holding the data
  9.     FList: TObjectList;
  10.     // dataset virtual methods
  11.     procedure InternalPreOpen; override;
  12.     procedure InternalClose; override;
  13.     // custom dataset virtual methods
  14.     function InternalRecordCount: Integer; override;
  15.     procedure InternalLoadCurrentRecord (Buffer: PChar); override;
  16.   end;
  17. implementation
  18. procedure TMdListDataSet.InternalPreOpen;
  19. begin
  20.   FList := TObjectList.Create (True); // owns objects
  21.   FRecordSize := 4; // an integer, the list item id
  22. end;
  23. procedure TMdListDataSet.InternalClose;
  24. begin
  25.   FList.Free;
  26.   inherited;
  27. end;
  28. procedure TMdListDataSet.InternalLoadCurrentRecord (Buffer: PChar);
  29. begin
  30.   PInteger (Buffer)^ := fCurrentRecord;
  31.   with PMdRecInfo(Buffer + FRecordSize)^ do
  32.   begin
  33.     BookmarkFlag := bfCurrent;
  34.     Bookmark := fCurrentRecord;
  35.   end;
  36. end;
  37. function TMdListDataSet.InternalRecordCount: Integer;
  38. begin
  39.   Result := fList.Count;
  40. end;
  41. end.