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

Delphi控件源码

开发平台:

Delphi

  1. unit DateL;
  2. interface
  3. uses
  4.   Classes, Dates, Contnrs;
  5. type
  6.   // inheritance based
  7.   TDateListI = class (TObjectList)
  8.   protected
  9.     procedure SetObject (Index: Integer; Item: TDate);
  10.     function GetObject (Index: Integer): TDate;
  11.   public
  12.     function Add (Obj: TDate): Integer;
  13.     procedure Insert (Index: Integer; Obj: TDate);
  14.     property Objects [Index: Integer]: TDate
  15.       read GetObject write SetObject; default;
  16.   end;
  17.   // wrapper based
  18.   TDateListW = class(TObject)
  19.   private
  20.     FList: TObjectList;
  21.     procedure SetObject (Index: Integer; Obj: TDate);
  22.     function GetObject (Index: Integer): TDate;
  23.     function GetCount: Integer;
  24.   public
  25.     constructor Create;
  26.     destructor Destroy; override;
  27.     function Add (Obj: TDate): Integer;
  28.     function Remove (Obj: TDate): Integer;
  29.     function IndexOf (Obj: TDate): Integer;
  30.     property Count: Integer read GetCount;
  31.     property Objects [Index: Integer]: TDate
  32.       read GetObject write SetObject; default;
  33.   end;
  34. implementation
  35. // inherited version
  36. function TDateListI.Add (Obj: TDate): Integer;
  37. begin
  38.   Result := inherited Add (Obj)
  39. end;
  40. procedure TDateListI.SetObject (Index: Integer; Item: TDate);
  41. begin
  42.   inherited SetItem (Index, Item)
  43. end;
  44. function TDateListI.GetObject (Index: Integer): TDate;
  45. begin
  46.   Result := inherited GetItem (Index) as TDate;
  47. end;
  48. procedure TDateListI.Insert(Index: Integer; Obj: TDate);
  49. begin
  50.   inherited Insert(Index, Obj);
  51. end;
  52. // embedded version
  53. constructor TDateListW.Create;
  54. begin
  55.   inherited Create;
  56.   FList := TObjectList.Create;
  57. end;
  58. destructor TDateListW.Destroy;
  59. begin
  60.   FList.Free;
  61.   inherited Destroy;
  62. end;
  63. function TDateListW.GetObject (Index: Integer): TDate;
  64. begin
  65.   Result := FList [Index] as TDate;
  66. end;
  67. procedure TDateListW.SetObject (Index: Integer; Obj: TDate);
  68. begin
  69.   FList[Index] := Obj;
  70. end;
  71. function TDateListW.GetCount: Integer;
  72. begin
  73.   Result := FList.Count;
  74. end;
  75. function TDateListW.Add (Obj: TDate): Integer;
  76. begin
  77.   Result := FList.Add (Obj);
  78. end;
  79. // another method you can optionally add
  80. {function TDateListW.Equals(List: TDateListW): Boolean;
  81. var
  82.   I: Integer;
  83. begin
  84.   Result := False;
  85.   if List.Count <> FList.Count then Exit;
  86.   for I := 0 to List.Count - 1 do
  87.     if List[I] <> FList[I] then
  88.       Exit;
  89.   Result := True;
  90. end;}
  91. function TDateListW.IndexOf(Obj: TDate): Integer;
  92. begin
  93.   Result := fList.IndexOf (Obj);
  94. end;
  95. // another method you can optionally add
  96. {procedure TDateListW.Insert(Index: Integer; Obj: TDate);
  97. begin
  98.   fList.Insert (Index, Obj);
  99. end;}
  100. function TDateListW.Remove(Obj: TDate): Integer;
  101. begin
  102.   Result := fList.Remove (Obj);
  103. end;
  104. end.