Hallo Leute,
ich habe das erste Mal ein wenig mit Pointern gespielt. Dabei ist diese
Unit herausgekommen.Sie ermöglich es, Liste von Records wie eine normale Liste zu verwenden. Da es, wie bereits gesagt, die erste
Unit ist, bin ich für Tipps und Verbesserungsvorschläge dankbar.
------
Delphi-Quellcode:
unit UniRecordList;
interface
uses Classes;
type TType =
record
element1 :
String;
element2: Shortint;
end;
//Type
type PType = ^TType;
type TTypelist=
class
private
FTypelist:TList;
function Get(
Index: Integer): TType;
procedure Put(
Index: Integer;
const Value: TType);
public
constructor Create;
destructor Destroy;
override;
function Add(Item:TType):integer;
procedure Delete(
Index:integer);
function Count :integer;
procedure Clear;
property item[
Index: Integer]: TType
read Get
write Put;
end;
implementation
constructor TTypelist.create;
begin;
while FTypelist.Count > 0
do
begin
Dispose (FTypelist.Items[0]);
end;
FTypelist:=TList.Create;
inherited;
end;
destructor TTypelist.destroy;
begin;
FTypelist.Clear;
FTypelist.Free;
inherited destroy;
end;
function TTypelist.Add(Item: TType): Integer;
var p: PType;
begin
New(p);
p^:=Item;
Result:=FTypelist.add(p);
end;
procedure TTypelist.Clear;
begin
FTypelist.clear;
end;
function TTypelist.count: Integer;
begin
Result:=FTypelist.count;
end;
function TTypelist.Get(
Index: Integer):TType;
begin
result:= PType(FTypelist.Items[
Index])^;
end;
procedure TTypelist.Put(
Index: Integer;
const Value: TType);
var p: PType;
begin
New(p);
p^:=value;
FTypelist[
Index]:=p;
end;
procedure TTypelist.Delete;
begin
Dispose(FTypelist.Items[
Index]);
FTypelist.Delete(
Index);
end;
end.