Forum: Object-Pascal / Delphi-Language
by Luckie,
24. Jan 2007
Das habe ich schon ausprobiert, da hat es bei mir aber gekracht. Mal sehen, ob das jetzt mit dem neuen Code geht. Ah, der letzte Satz war es wohl, denn den Destruktor hatte ich noch nicht rausgenommen gehabt, wessewegen er wohl Objekte Freigeben wollte, die schon freigegeben wurden.
:thumb:
Forum: Object-Pascal / Delphi-Language
by Luckie,
24. Jan 2007
Also so:
procedure TPageCollection.Insert(Index: Integer; Item: TImageEnVect);
begin
self.Items.Free;
inherited Items := Item;
end;
procedure TPageCollection.Update(Index: Integer; Item: TImageEnVect);
begin
Forum: Object-Pascal / Delphi-Language
by Luckie,
24. Jan 2007
Das wäre natürlich eine Idee. Meine Klasse sieht jetzt so aus:
type
TPageCollection = class(TList)
private
function GetItem(Index: Integer): TImageEnVect;
procedure SetItem(Index: Integer; Item: TImageEnVect);
public
// ...;
property Items: TImageEnVect read GetItem write SetItem;
Forum: Object-Pascal / Delphi-Language
by Luckie,
24. Jan 2007
Ich habe eine Liste mit Objekten. Wie kann ich in dieser Liste ein Objekt jetzt aktualisieren, weil es sich geändert hat? Ich habe mir da bisher so was gebaut:
procedure TPageCollection.Update(Index: Integer; Item: TImageEnVect);
begin
self.Delete(Index);
self.Insert(Index, Item);
end;
Aber was passiert da mit dem Speicher? Geht das so in Ordnung oder habe ich mir da gerade ein...