SelfDestructDisabledIfOwneds

 (Available in 00 TS Tools(Base) - TS_Tools_Root2)

Purpose

Set if the object 'SelfDestruct' is disabled when objects are owned

Syntax

oSomeObject:SelfDestructDisabledIfOwneds:=TRUE

Arguments

lSelfDestruct
LOGIC

Description

If TRUE and the object has a owner, then the object will selfdestruct at the moment that the owner unregisters itself. If this setting is TRUE then the 'SelfDestruct' will be delayed until the last owned is unregisterd.

This behavior is only supported if the owner is derived from 'TS_Root0'

Note: Be carefull when changing this property, most of the time the classes operate best when this property is set to FALSE ( It's dafault value ).

Source

ASSIGN SelfDestructDisabledIfOwneds( lSelfDestructDisabledIfOwneds AS LOGIC ) AS  ; ...
...LOGIC PASCAL CLASS TS_Root2
   TSTrace Enter
   DO CASE
   CASE LOGIC( _CAST, _AND( SELF:_ObjectStat2, TS_OBJSTAT2_SELFDESTRUCT_FREEZE  ; ...
  ... ) )
      TSTrace Warning "LOGIC(_CAST,_And(SELF:_ObjectStat2,TS_OBJSTAT2_SELFDESTRUCT_FREEZE))"
   CASE lSelfDestructDisabledIfOwneds
      SELF:_ObjectStat2:=_OR( SELF:_ObjectStat2 ; ...
     ... , TS_OBJSTAT2_NOSELFDESTRUCTIFOWNEDS )
   OTHERWISE
      SELF:_ObjectStat2:=_AND( SELF:_ObjectStat2 ; ...
     ... , _NOT( TS_OBJSTAT2_NOSELFDESTRUCTIFOWNEDS ) )
   END
   TSTrace Leave
RETURN _AND( SELF:_ObjectStat2, TS_OBJSTAT2_NOSELFDESTRUCTIFOWNEDS  ; ...
...)==TS_OBJSTAT2_NOSELFDESTRUCTIFOWNEDS