Thema: Delphi Zeiger freigeben

Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#10

Re: Zeiger freigeben

  Alt 21. Jun 2005, 14:07
Warum willst du unbedingt it records und Zeigern arbeiten?

Alki hat in der CodeLib ein Hier im Forum suchenObjectList template platziert.
Damit ist folgendes möglich:

Eine Klasse, die dein Item darstellt (die Liste wird durch ein paar Extra runden des Compilers angelegt ):
Delphi-Quellcode:
uses Contnrs;

type
   TTest = class
   private
      fSomeValue: Integer;
   public
      property SomeValue: Integer read fSomeValue;
      procedure DoSomething;
      constructor Create(aSomeValue :Integer); virtual;
   end;

   _LIST_ITEM_ = TTest;
{$DEFINE TYPED_LIST_TEMPLATE}
{$INCLUDE ObjList_Tmpl.pas}
   TTestList = _LIST_;

implementation

{$INCLUDE ObjList_Tmpl.pas}

{ TestClass }

constructor TTest.Create(aSomeValue: Integer);
begin
   fSomeValue := aSomeValue;

end;

procedure TTest.DoSomething;
begin
   Writeln(SomeValue);
end;
Die Verwendung ist absolut easy.
Delphi-Quellcode:
procedure TTestUsage.DoSomething;
var
   List : TTestList;
   Item : TTest;
   Counter : Integer;
begin

   List := TTestList.Create();
   try

      for Counter := 1 to 100 do
      begin
         Item := TTest.Create(Counter);
         List.Add(Item);
      end;

      for Counter := 0 to List.Count do
      begin
         List[Counter].DoSomething(); // ohne type cast :-)
      end;

   finally
      List.Free();
   end;
end;
Ohne ^, @, Typecasts, anderes Gefriemel... (Die Typecasts sind ja schon im Template versteckt )
  Mit Zitat antworten Zitat