Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Problem mit dpCollection, loadfromStream / assign

  Alt 17. Apr 2009, 10:12
Deine Assign-Methode ist nicht vollständig:
Delphi-Quellcode:
procedure TChecklistItem.Assign(Source: TPersistent);
begin
  If Source is TChecklistItem then
  begin
    // hier wird nur ein einziges Property kopiert
    tn:=TChecklistItem(Source).itemname;
    // alle Properties der Basisklasse TCollectionItem werden nicht kopiert
  end
  else
    inherited Assign(Source);
end;
Ich gehe mal davon aus, dass TCollectionItem.Assign() im Sourcecode der VCL existiert (bitte prüfen).
Also kannst du diese Methode aufrufen und danach (!) noch das kopieren was noch fehlt:
Delphi-Quellcode:
procedure TChecklistItem.Assign(Source: TPersistent);
begin
  inherited Assign(Source); // sollte (Source is TCollectionItem) nicht wahr sein, dann gibts 'ne Exception

  If Source is TChecklistItem then
  begin
    tn:=TChecklistItem(Source).tn;
  end;
end;
Die Struktur sieht jetzt etwas anderst aus, als man das von der Assign-Methode gewöhnt ist, aber das hat damit zu tun,
dass wir es uns sparen ALLE Properties zu kopieren.
  Mit Zitat antworten Zitat