Ok.
Delphi-Quellcode:
if not Assigned(SkinPopUpMenu) then
PopUpCallback(OnPopupDestroyed);
wird nicht ausgeführt, weil SkinPopupMenu immer zugewiesen ist (lassen wir mal die doppelte Verneinung weg).
Ich habe hier den Thread durchsucht nach "SkinPopUpMenu :=". Zumindest hier kann ich nichts finden, das SkinPopupMenu Nil zuweist.
Dort, wo das passiert (oder erfolgt dies vielleicht gar nicht?), sollte SkinPopupMenu danach ja auch Nil sein (andernfalls verwendest Du vielleicht eine lokale Variable gleichen Namens).
Wenn das so ist,
- kommt das Programm danach nie mehr zur obigen Prüfung
oder
- SkinPopupMenu wird wieder ein InterfaceObject zugewiesen.