Hey Leute, ich glaube meine Delphi spinnt (oder bin ich es...?!

)
ich habe folgenden if abfrage:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| begin if assigned(global_protokoll) then begin global_protokoll.add(text);
if (status=10) then begin global_protokoll.free; end; end; end; |
diese durchläuft des Programm ständig, da diese Procedure extern aufgerufen wird. wenn nun die Procedure aufgerufen wird und status 10 ist, wird global_protokoll.free ausgeführt. beim nächsten Aufruf der Procedure und der Abfrage
Delphi-Quelltext
1: 2: 3:
| if assigned(global_protokoll) then begin global_protokoll.add(text); |
ist assigned(global_protokoll) true obwohl ich es doch bei status 10 mit free freigegeben habe?!
dann Läuft der Compiler weiter UND !!überspringt!! mir einfach die if abfrage nach status 10??!! Wie geht das denn bitte??