Del

 (Available in 01 TS COM - TS_COM_StaticObjectsRepo)

Source

METHOD Del( hSORID AS PTR ) AS OBJECT PASCAL CLASS TS_StaticObjectsRepo
LOCAL pSORData AS _TS_SORData
LOCAL pbSORID AS BYTE PTR
LOCAL oObject AS OBJECT
LOCAL dwSORID AS DWORD
LOCAL X AS DWORD
   TSTrace Enter
   dwSORID:=DWORD( _CAST, hSORID )
   IF LOGIC( _CAST, SELF:_SORData )
      _TS_DynLock( PSZ( _CAST, __ENTITY__ ) )
      IF LOGIC( _CAST, SELF:Get( dwSORID ) )
         pbSORID:=@dwSORID
         pSORData:=SELF:_SORData
         pSORData.Used-=1U
         X:=pbSORID[ 1U ]
         pSORData:=pSORData.Items[ X ]
         pSORData.Used-=1U
         X:=pbSORID[ 2U ]
         pSORData:=pSORData.Items[ X ]
         pSORData.Used-=1U
         X:=pbSORID[ 3U ]
         pSORData:=pSORData.Items[ X ]
         pSORData.Used-=1U
         X:=pbSORID[ 4U ]
         oObject:=OBJECT( _CAST, pSORData.Items[ X ] )
         pSORData.Items[ X ]:=NULL_PTR
      ELSE
         TSTrace Error "!LOGIC(_CAST,SELF:Get(dwSORID))"
         oObject:=NULL_OBJECT
      END
      _TS_DynUnLock( PSZ( _CAST, __ENTITY__ ) )
   ELSE
      TSTrace Error "!LOGIC(_CAST,SELF:_SORData)"
      oObject:=NULL_OBJECT
   END
   TSTrace Leave
RETURN oObject