Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Objekt komplett mit enthaltenden Objekten kopieren

  Alt 2. Dez 2005, 15:10
Wenn ich das Problem richtig verstanden habe, sollte es so funktionieren:
Delphi-Quellcode:
function TGridPoint.Assign(Source: TPersistent);
begin
  if Source is TGridPoint then
    with TGridPoint(Source) do
    begin
      Self.Position := Position;
      // Wenn der obere Punkt noch nicht zugewiesen wurde (sonst gäbe es eine hübsche Endlosschleife)
      if (Self.PointAbove = nil) and (PointAbove <> nil) then
      begin
        Self.PointAbove := TGridPoint.Create; // Hier müsstest du noch einen weiteren Konstruktor hinzufügen
        Self.PointAbove.PointUnder := Self;
        Self.PointAbove.Assign(PointAbove);
      end;

      if not Assigned(Self.PointLeft) and Assigned(PointLeft) then
        [...]
    end
  else
    inherited;
end;
[edit] Nein, so gäbe es immer noch eine Endlosschleife *weiternachdenk* [/edit]

[edit2] Das Problem ist wirklich verzwickt *g* . Gerade fällt mir nur ein, das Grid temporär in ein zweidimensionales Array zu speichern (wenn das bei deinem Aufbau der Knoten möglich ist) und daraus wieder das Grid zu erstellen oder mit einem Feld in den zu kopierenden Knoten zu kennzeichnen, ob sie schon kopiert wurden. Bei Letzterem könnte man meine Prozedur von oben mit wenigen Änderungen übernehmen. [/edit2]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat