Delphi-Quellcode:
unit Unit2;
interface
type
PVListNode = ^TVListNode;
TVListNode =
record
pNext : PVListNode;
fData :
record end;
end;
TVList =
class
private
pFirst : PVListNode;
iDataSize : Integer;
protected
function GetLast : PVListNode;
public
constructor Create(aiDataSize : Integer);
destructor Destroy;
override;
// fehlt noch
procedure AddItem(
const fData);
procedure DeleteAll;
end;
implementation
{ TVList }
procedure TVList.AddItem(
const fData);
var pNew : PVListNode;
begin
GetMem(pNew, SizeOf(TVListNode) * iDataSize);
pNew^.pNext :=
nil;
Move(fData, pNew^.fData, iDataSize);
// Daten in Buffer
if pFirst =
nil then
pFirst := pNew
else
GetLast^.pNext := pNew;
end;
constructor TVList.Create(aiDataSize : Integer);
begin
inherited Create;
pFirst :=
nil;
iDataSize := aiDataSize;
end;
destructor TVList.Destroy;
begin
DeleteAll;
inherited;
end;
function TVList.GetLast: PVListNode;
begin
if pFirst =
nil then
Result :=
nil
else
begin
Result := pFirst;
while Result^.pNext <>
nil do
Result := Result^.pNext;
end;
end;
end.
So, sieht das ding komplett aus.
Anmerk: wie haben via ICQ getextet.