Einzelnen Beitrag anzeigen

ozz

Registriert seit: 26. Jun 2005
131 Beiträge
 
#1

Vorstellung: universelle Tlist zur Verwaltung von Records

  Alt 25. Feb 2007, 15:10
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.
  Mit Zitat antworten Zitat