Hi,
Codeausschnitt:
Delphi-Quellcode:
SimpleBrain := TSimpleBrain.Create(1, 1);
try
try
//kleiner Hack zum Testen --> Programmierung dass
with TNeuron(SimpleBrain.Input[0]) do
begin
Output.Add(SimpleBrain.Output[0]);
in der letzten geposteten Zeile kommt es zur
AV, wobei nicht einmal die Add-Methode betreten wird, das heißt vermutlich knallt es schon vorher beim Zugriff auf Input[0].Output, weil Input nicht mehr existiert.
SimpleBrain.Input/Output sind Eigenschaften vom Typ TNeuronList, diese gibt ein INeuron-Interface zurück. Ich weiß aber (da es mein Code ist), dass dahinter die Klasse TNeuron steckt, und auf eine Eigenschaft von dieser, die wiederum eine TNeuronList ist, möchte ich (testweise) zugreifen.
Im Debugger wird bei F7 drücken nie durch den Destruktor von TNeuron gegangen, das hatte ich anfangs, da ich durch die Typecasts die Referenzzählöungs-CompilerMagic ausgehebelt habe, aber nun habe ich manuell _AddRef und _Release aufgerufen, und ich lande auch nicht mehr im Destruktor. Mein Neuron sollte also noch existieren.
Nun ja, ich finde die Ursache nicht.
Im Anhang das komplette Programm.
Mfg
FAlter