IsInited

 (Available in 01 TS COM - TS_COM_IUnknown)

Purpose

Test if the init method has been executed.

Syntax

IF SELF:IsInited

Description

Test if the object has been inited. While the object is being inited ( while the 'Init()' method is being executed ) this access returns FALSE.

Example

METHOD INIT( ..., ...  ; ...
...) CLASS SomeICLass
// Most secure ( and complex ) form of an 'safe' init method
// See also the 'Init()' method documentation
   DO CASE
   CASE SELF:IsInited
      TSTrace Warning "Can not re-init"
   CASE SELF:IsInInit
      SELF:CountInInit( TRUE )
//    From here on insert you own initialization code
//    It is better not to call any object method/access/assign
//    Process the parameters
      ..., ... 
      IF lParameterError
         TSTrace Warning "... parameter error ..."
         SELF:InvalidateObject( )
      END
//    At this point all initialization code should be done
      SELF:CountInInit( FALSE )
      IF SELF:IsValidObject
         SUPER:INIT( ... ; ...
        ... , ... )
         IF SELF:NeedNew
            SELF:NeedNew:=FALSE
//          Put your 'PostInit()' code in the 'New()' method
            SELF:NEW( ... ; ...
           ... , ... )
         END
      ELSE
         TSTrace Warning TS_TEXT_GEN_CAN_NOT_INITIALIZE
         SELF:InvalidateObject( )
      END
   OTHERWISE
      TSTrace Warning "This can not happen"
   END
RETURN SELF

Source

ACCESS IsInited CLASS TS_IUnknown
LOCAL lIsInited AS LOGIC
   TSTrace Enter
   IF LOGIC( _CAST, _AND( SELF:_ObjectStat1, _OR( TS_OBJSTAT1_ININIT ; ...
  ... , TS_OBJSTAT1_COUNTMASK, TS_OBJSTAT1_NEEDNEW ) ) )
      lIsInited:=FALSE
   ELSE
      lIsInited:=TRUE
   END
   TSTrace Leave
RETURN lIsInited