Einzelnen Beitrag anzeigen

cmrudolph

Registriert seit: 14. Aug 2006
29 Beiträge
 
Delphi 7 Professional
 
#4

Re: Unterschied Zuweisung Unterelemente / ganzes Objekt

  Alt 21. Okt 2008, 09:00
Das habe ich schon befürchtet.
Einfach nach dem Free vom ersten Objekt mit den Daten weiterzuarbeiten führt ja nicht unbedingt sofort zur Exception. Habe in solchen Fällen schon mehrfach stundenlang gesucht, weil die Exception erst beim Schließen des Programmes auftrat. Bis ich dann festgestellt habe, dass ich mit freigegebenem Speicher gearbeitet habe.

In meinem Fall sind die Objekte aber so trivial, dass es ein Overkill wäre, wenn ich eine Assign Methode programmieren würde.

Danke für die Hilfe.

mfG

Edit:
Delphi-Quellcode:
...
type
...
  TObj1 = class(TObject)
  private
    Fs: String;
    Fi: Integer;
  public
    property s: String read Fs;
    property i: Integer read Fi;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  obj1,obj2: TObj1;
begin
  obj1:=TObj1.Create();
  obj1.Fs:='abc';
  obj1.Fi:=1;

  obj2:=TObj1.Create();

  //Der Kasus-Knacktus
  obj2.Fi:=obj1.Fi;
  obj2.Fs:=obj1.Fs;

  obj1.Free;

  //mache irgend etwas mit obj2
  ShowMessage(obj2.s);
  obj2.Free;
end;
Dieser Code bringt keine Exception.

Edit2: Mein Fehler... Ich hab da natürlich den falschen Quellcode kopiert... Mit dem anderen kommt es in der Tat direkt zur Exception.
  Mit Zitat antworten Zitat