Einzelnen Beitrag anzeigen

Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.640 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Kopie eines Item aus der TObjectList

  Alt 22. Jan 2007, 10:12
TObjectList bietet einen Mechanismus zum Verwalten seiner Items. Ruft man TObjectList.Create(true) auf, gehören die Items dieser Objectlist und sie werden bei ObjectList.clear bzw ObjectList.Free von dieser wieder freigegeben.

Ruft man TObjectList.Create(false) auf, muss man sich selbst um die Freigaben der Items kümmern.

Um eine Kopie eines Items zu bekommen, musst Du dieses Object TCarPos noch z.b. um die funktionen AssignTo und Clone erweitern:

Delphi-Quellcode:

TCarPos
public
  procedure AssignTo(_Dest : TCarPos);
  function Clone : TCarPos;
end;

procedure TCarPos.AssignTo(_Dest : TCarPos);
begin
  _Dest.Zeitpunkt := Zeitpunkt;
  ...
end;

function TCarPos.Clone : TCarPos;
begin
  Result := TCarPos.Create;
  AssignTo(Result);
end;
Dann machst Du einfach

Delphi-Quellcode:

  for i := 0 to master.count-1 do
    slave.add(master[i].clone)
schon hast Du eine Kopie, die Du mit slave.clear wieder löschst.

idealer Weise erweiterst Du Deine Objektlist auch um AssignTo und Clone um sich die Schleife zu sparen
Sven Harazim
--
  Mit Zitat antworten Zitat