Einzelnen Beitrag anzeigen

ZahnschleischbluterMurph

Registriert seit: 25. Feb 2009
Ort: Eisenach
3 Beiträge
 
#1

Constructor stürzt mich ins Verderben

  Alt 25. Feb 2009, 02:13
Hallo zusammen,

ich bin grad am Verzweifeln. Ich habe mehrere Objektlisten und packe da immer kräftig meine Ojekte drauf.

Unit Typen:
Delphi-Quellcode:
Type TTabu = class(TObject)
t:integer;
s:integer;
...
Constructor Create;
end;

Type TTabu_Liste = class(TOjectList)
published function GetItems(i:integer):TTabu
end;

...

implementation

constructor TTabu.Create();
begin
inherited create;
end;

function TTabu_Liste.GetItems(i : integer):TTabu;
begin
result := TTabu(inherited Items[i]);
end;
Soweit so gut. Funktioniert auch alles ganz prima. Ich deklariere die Tabus (Tabu : TTabu, lege einige an (Tabu := TTabu.Create), weise ihnen Werte zu (Tabu.t := 7) und packe sie in die Liste (Tabu_liste.add(Tabu)).

Irgendwann allerdings schmiert das Programm beim Aufruf des Constructors ab. Also nach Tabu := TTabu.Create springt er noch in den Constructor und hängt sich dann auf. Nach ein paar Sekunden kommt dann eine Fehlermeldung 'Zugriffsverletzung bei ...: Schreiben von Adresse ...'.

Das Schlimme ist, dass es irgendwie willkürlich passiert. Wenn ich bspw. beim Typen noch eine variable k: single mit reinstecke, hängt sich das Programme einige Schleifen früher auf. Wenn ich die Objekte nach der Übernahme in die Liste zerstöre, dann hat das nur den Effekt, dass das Programm bei einem anderen Constructor abschmiert.

Hab echt keinen Plan, was da schief läuft und wäre Euch dankbar für Tipps. Kann ich im Constructor etwas ändern?

Eines jedoch vorweg: dynamische Arrays von records sind nicht drin. Damit hatte ich ursprünglich alles gemacht, jedoch war der Speicherbedarf ein wenig zu hoch geworden (wegen ständiger Längenanpassung).

Falls wichtig: ich nutze Delphi 7.
  Mit Zitat antworten Zitat