Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Vorstellung: universelle Tlist zur Verwaltung von Records (https://www.delphipraxis.net/87225-vorstellung-universelle-tlist-zur-verwaltung-von-records.html)

ozz 25. Feb 2007 14:10


Vorstellung: universelle Tlist zur Verwaltung von Records
 
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.
:dp:

------

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.

Jelly 25. Feb 2007 14:33

Re: Vorstellung: universelle Tlist zur Verwaltung von Record
 
Delphi bietet doch schon unterschiedlichste Listen: TObjectList, TCollection... Warum eine eigene basteln ?

ozz 25. Feb 2007 17:51

Re: Vorstellung: universelle Tlist zur Verwaltung von Record
 
Hallo Jelly,
im Wesentlichen sind es zwei Gründe.
1. Ich wollte einiges lernen und mit Pointern arbeiten
2. bisher habe ich TCollection nicht verwendet(TList etc kenne ich schon)

Hast du sonst noch Anmerkungen?

DP-Maintenance 25. Feb 2007 18:17

DP-Maintenance
 
Dieses Thema wurde von "alcaeus" von "VCL / WinForms / Controls" nach "Object-Pascal / Delphi-Language" verschoben.
Passt auch besser hierher, es geht nicht wirklich um die VCL.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz