Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#22

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 10:57
Danke erstmal...

Bei meinen Anforderungen handelt es sich ausschließlich um eigene "Daten"-Objekte.

Nachtrag:
Ich hatte diverse Beiträge auf Seite 1 übersehen. Vor allem der Link in Beitrag 9 http://www.delphipraxis.net/1152083-post9.html und der weiterführende Link sind sehr aufschlußreich.

Danke an alle. Wenn das, so wie verlautet, auch mit generischen Listen im Objekt funktioniert, wäre das "Muster" gut geeignet für die CodeLib...

Nachtrag Lösung:
habe jetzt nach folgendem Muster umgestellt...
Delphi-Quellcode:
.....
uses
  DBXJSON, DBXJSONReflect;
.....
 
function DeepCopy(aValue: TObject): TObject;
var
  MarshalObj: TJSONMarshal;
  UnMarshalObj: TJSONUnMarshal;
  JSONValue: TJSONValue;
begin
  Result:= nil;
  MarshalObj := TJSONMarshal.Create;
  UnMarshalObj := TJSONUnMarshal.Create;
  try
    JSONValue := MarshalObj.Marshal(aValue);
    try
      if Assigned(JSONValue) then
        Result:= UnMarshalObj.Unmarshal(JSONValue);
    finally
      JSONValue.Free;
    end;
  finally
    MarshalObj.Free;
    UnMarshalObj.Free;
  end;
end;
Verwendung...
Delphi-Quellcode:
.....
var
  MyObject1,
  MyObject2: TMyObject;
begin
  //Regular object construction
  MyObject1:= TMyObject.Create;

  //Deep copying an object
  MyObject2:= TMyObject(DeepCopy(MyObject1));

  try
    //Do something here

  finally
    MyObject1.Free;
    MyObject2.Free;
  end;
end;
Die Verwendung als ClassHelper ist auch sehr interessant. (Siehe Link)

Erste Tests sind gut. Wollen wir dann mal schauen wie das mit "Unterobjekten" und generischen Listen funktioniert.

Danke an alle...

Geändert von haentschman (21. Feb 2012 um 11:34 Uhr)
  Mit Zitat antworten Zitat