AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kopie eines Item aus der TObjectList

Ein Thema von Kostas · begonnen am 22. Jan 2007 · letzter Beitrag vom 23. Jan 2007
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.112 Beiträge
 
Delphi 12 Athens
 
#1

Re: Kopie eines Item aus der TObjectList

  Alt 22. Jan 2007, 23:37
Hallo sH17,

es funkt beste Sahne mit dem Clonen.
Hab auch die constructoren aus beiden TObjectList entfernt.
Ein bisschen unwohl ist mir noch bei dieser Sache, weil ich noch nicht
sattelfest bin in OOP. (Ich habe es bis jetzt umgehen können. )
Wenn ich das free der TObjectList aufrufe werden dann auch alle
geklonte items gelöscht?
Ist es eigentlich Möglich memory leaks zu finden?

Hier noch meine drei Klassen. Wenn es Dir möglich währe nochmals drüber zu schauen.

Besten Dank nochmals sH17 und schöne Grüße.


Delphi-Quellcode:
TCarPos = class(TObject)
  private
    FZeitpunkt:TDateTime;
    FCarID:integer;
    Procedure SetZeitpunkt(value :TDateTime);
    function GetZeitpunkt:TDateTime;
    Procedure SetCarID(value :Integer);
    function GetCarID:Integer;
  public
    constructor Create;
    property Zeitpunkt: TDateTime read GetZeitpunkt write SetZeitpunkt;
    property CarID: Integer read GetCarID write SetCarID;
    procedure AssignTo(var Dest : TCarPos);
    function Clone: TCarPos;
  end;

  TCarPosCollection =Class(TObjectList)
  private
    FZustand:Boolean;
    function Get(Index: Integer): TCarPos;
  public
    procedure Add(Item: TCarPos);
    property Items[Index: Integer]: TCarPos read Get;
    procedure AssignTo(var Dest : TCarPosCollection);
    function Clone: TCarPosCollection;
  end;

  TTagesauswertung =Class(TObjectList)
  private
    function Get(Index: Integer): TCarPosCollection;
  public
    procedure Add(Item: TCarPosCollection);
    property Items[Index: Integer]: TCarPosCollection read Get;
  end;


{ TCarPos }
constructor TCarPos.Create;
begin
  FZeitpunkt:=0.0;
  FCarID:=0;
end;

procedure TCarPos.AssignTo(var Dest: TCarPos);
begin
  Dest.FZeitpunkt := FZeitpunkt;
  Dest.FCarID := FCarID;
end;

function TCarPos.Clone: TCarPos;
begin
  result := TCarPos.Create;
  AssignTo(result);
end;


{ TCarPosCollection }
procedure TCarPosCollection.Add(Item: TCarPos);
begin
  inherited Add(Item);
end;

function TCarPosCollection.Get(index: integer):TCarPos;
begin
  result := inherited Get(Index);
end;

procedure TCarPosCollection.AssignTo(var Dest: TCarPosCollection);
var
  i:integer;
begin
  Dest.FZustand := FZustand;

  {kopiere alle items vom typ TCarPos}
  for i := 0 to count-1 do
    Dest.add(items[i].clone);
end;

function TCarPosCollection.Clone: TCarPosCollection;
begin
  result := TCarPosCollection.Create;
  AssignTo(result);

end;


{ TTagesauswertung }
procedure TTagesauswertung.Add(Item: TCarPosCollection);
begin
  inherited Add(Item);
end;

function TTagesauswertung.Get(index: integer):TCarPosCollection;
begin
  result := inherited Get(Index);
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz