📄 datel.pas
字号:
unit DateL;
interface
uses
Classes, Dates;
type
// inheritance based
TDateListI = class (TList)
protected
procedure Put(Index: Integer; Item: TDate);
function Get (Index: Integer): TDate;
public
procedure Add (Obj: TDate);
property Items[Index: Integer]: TDate
read Get write Put; default;
end;
// wrapper based
TDateListW = class(TObject)
private
FList: TList;
function Get(Index: Integer): TDate;
procedure Put(Index: Integer; Item: TDate);
function GetCount: Integer;
public
constructor Create;
destructor Destroy; override;
function Add(Item: TDate): Integer;
function Equals(List: TDateListW): Boolean;
property Count: Integer read GetCount;
property Items[Index: Integer]: TDate
read Get write Put; default;
end;
implementation
// inherited version
procedure TDateListI.Add (Obj: TDate);
begin
inherited Add (Obj)
end;
procedure TDateListI.Put(Index: Integer; Item: TDate);
begin
inherited Put (Index, Item)
end;
function TDateListI.Get (Index: Integer): TDate;
begin
Result := inherited Get (Index);
end;
// embedded version
constructor TDateListW.Create;
begin
inherited Create;
FList := TList.Create;
end;
destructor TDateListW.Destroy;
begin
FList.Free;
inherited Destroy;
end;
function TDateListW.Get(Index: Integer): TDate;
begin
Result := FList[Index];
end;
procedure TDateListW.Put(Index: Integer; Item: TDate);
begin
FList[Index] := Item;
end;
function TDateListW.GetCount: Integer;
begin
Result := FList.Count;
end;
function TDateListW.Add(Item: TDate): Integer;
begin
Result := FList.Add(Item);
end;
function TDateListW.Equals(List: TDateListW): Boolean;
var
I: Integer;
begin
Result := False;
if List.Count <> FList.Count then Exit;
for I := 0 to List.Count - 1 do
if List[I] <> FList[I] then
Exit;
Result := True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -