![]() |
Teil einer Klasse kopieren und als neue zurückgeben
Hi Leute!
Ich brauche eine Liste, in welche ich a) ein Objekt einfügen kann b) das zuletzt eingefügte Objekt weider ausgeben lassen kann c) das zuletzt eingefügte Objekt löschen kann d) die Restliste (ohne das zuletzt eingegebene) zurückgeben kann. Das ganze ist ja bis auf Punkt d) nicht schwer und war auch schnell gelößt. Dort habe ich allerdings Probleme. Ich Poste hier mal das was ich bisher habe. Auch die bisherige Funktion, welche leider nicht so ganz funktioniert. Ich hoffe, ihr könnt mir einem kleinen Denkanstoß geben EDIT: In die Liste sollen übrigends nur Integer rein. EDIT2: Fehler verbessert (siehe nächer Post)
Delphi-Quellcode:
program IntList;
{$APPTYPE CONSOLE} type TIntList = class private FItems: Array of Integer; public procedure Add(i: integer); procedure Del; function OutList: TIntList; function First: Integer; end; procedure TIntList.Add(i: integer); begin SetLength(FItems, Succ(Length(FItems))); FItems[Pred(Length(FItems))] := i; end; procedure TIntList.Del; begin SetLength(FItems, Pred(Length(FItems))) end; function TIntList.OutList: TIntList; var tmp: Integer; begin tmp := Self.First; Self.Del; Result := TIntList.Create; Result := Self; Self.Add(tmp); end; function TIntList.First: Integer; begin Result := FItems[Pred(Length(FItems))]; end; var l: TIntList; begin l := TIntList.Create; l.Add(99); l.Add(98); l.Add(97); l.Add(96); l.Add(95); Writeln(l.First); Writeln(l.OutList.First); Readln; l.Free; end. |
Re: Teil einer Klasse kopieren und als neue zurückgeben
Delphi-Quellcode:
Dynamische Arrays sind 0-indiziert, laufen ergo von 0 bis Length - 1.
FItems[Length(FItems)] := i;
Delphi-Quellcode:
PS: Eine TList statt dem Array wäre besser.
function TIntList.OutList: TIntList;
begin Result := TIntList.Create; // Durch Self ohne das letzte Item iterieren und in Result einfügen. end; |
Re: Teil einer Klasse kopieren und als neue zurückgeben
Zitat:
Zitat:
Zitat:
|
Re: Teil einer Klasse kopieren und als neue zurückgeben
Was spricht gegen eine TObjectList ??
...damit kannst du alles was du machen willst sehr komfortabel umsetzen |
Re: Teil einer Klasse kopieren und als neue zurückgeben
Dagegen spricht mein Lehrer, der genau die beschriebene Liste haben möchte.
Bisher arbeiten wir mit einer TObjectlist. Er meinte aber, dass die die mit ihrem derzeitigen Programm schon fertig sind eine solche Klasse entwickeln könnten. Achso und wenn dann TList und nicht TObjectlist, da da ja nur Integer rein sollen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 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