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.