📄 packetlists.pas
字号:
unit PacketLists;
interface
Uses Classes;
Type
TFasterPacket = record
Size, Command: LongInt;
Data: Pointer;
end;
PFasterPacket = ^TFasterPacket;
TFasterPacketList= Class(TList)
private
Function GetItem(I: Integer): TFasterPacket;
Procedure SetItem(I: Integer; Data: TFasterPacket);
public
Procedure Add(Data: TFasterPacket);
procedure ClearList;
Procedure Delete(Index: Integer);
property Items[I: Integer]: TFasterPacket read GetItem write SetItem; default;
destructor Destroy; override;
end;
implementation
Function TFasterPacketList.GetItem(I: Integer): TFasterPacket;
begin
Result := PFasterPacket(inherited Items[I])^;
end;
Procedure TFasterPacketList.SetItem(I: Integer; Data: TFasterPacket);
begin
PFasterPacket(inherited Items[I])^ := Data;
end;
Procedure TFasterPacketList.Add(Data: TFasterPacket);
Var
a: PFasterPacket;
begin
New(a);
a^ := Data;
inherited Add(a);
end;
Procedure TFasterPacketList.ClearList;
Var a: Integer;
begin
For a := Count - 1 downto 0 do begin //autofree data
FreeMem(PFasterPacket(inherited Items[a])^.Data);
Dispose(inherited Items[a]);
end;
Inherited Clear;
end;
Procedure TFasterPacketList.Delete(Index: Integer);
begin
FreeMem(PFasterPacket(inherited Items[Index])^.Data);
Dispose(inherited Items[Index]);
inherited Delete(Index);
end;
destructor TFasterPacketList.Destroy;
Var
a: Integer;
begin
For a := Count - 1 downto 0 do begin
FreeMem(PFasterPacket(inherited Items[a])^.Data);
Dispose(inherited Items[a]);
end;
inherited Destroy;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -