Einzelnen Beitrag anzeigen

cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#6

AW: Schutzverletzung bei Zugriff auf Objekt

  Alt 5. Jun 2013, 08:46
Danke schon mal für die Antworten. Das Komische ist, dass ich knapp vorher noch auf das Objekt zugreifen kann.

Delphi-Quellcode:
//main form
  objekta.objektb.value_a := 123.0;
  if somecondition then
    objekta.prozedurx
  else
    objekta.prozedury;

//TKlasseA
procedure TKlasseA.prozedurx;
begin
  objektb.value_b := 456; //geht
end;

procedure TKlasseA.prozedury;
begin
  objektb.value_b := 456; //geht nicht
end;
In der main Form kann ich auf das Objekt B zugreifen. Ich schreib Werte rein, und kann - wenn ich Breakpoints setze - auch das Objekt und seine Werte sehen. Und dann kommt eine simple Abfrage, die entscheidet, ob Prozedur X oder Prozedur Y ausgeführt wird. Wenn X ausgeführt wird, dann existiert das Objekt, ich kann via Breakpoint das Objekt und seine Werte einsehen, wenn Y ausgeführt wird, scheint das Objekt wie verschwunden, aber eben auch nicht NIL.

Objekt B wird übrigens erst im destructor von Objekt A mit FreeAndNil freigegeben. Da komme ich aber nie hin. Und wie erwähnt, wenn ich genau das gleiche in einem neuen Testprojekte mache, dann funktioniert es auch. Es muss offenbar irgendeine merkwürdige Quer-Abhängigkeit sein.

Das Objekt A wird auch nur ein mal erzeugt, nämlich im Create des Forms. Von der KlasseB werden allerdings in drei weiteren anderen Klassen Instanzen erzeugt. Kann da der Hund begraben liegen? Ist es entscheidend, wie ich die Klasse B in verschiedenen anderen Klassen instanziere? Das muss doch egal sein, oder?

Danke jedenfalls für Eure Aufmerksamkeit!
  Mit Zitat antworten Zitat