RemoveAtractors

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

Source

METHOD RemoveAtractors( aAtomized AS ARRAY ) AS ARRAY PASCAL CLASS TS_Atomizer
LOCAL oAtomizerItemThis AS TS_AtomizerItem
LOCAL oAtomizerItemText AS TS_AtomizerItem
LOCAL zAtomized AS DWORD
LOCAL iAtomized AS DWORD
   TSTrace Enter
   SELF:_ItemCreationBlocked+=1U
   zAtomized:=ALen( aAtomized )
   iAtomized:=0U
   WHILE iAtomized<zAtomized
      iAtomized+=1U
      oAtomizerItemThis:=aAtomized[ iAtomized ]
      IF oAtomizerItemThis:IsAtractor
         oAtomizerItemText:=CreateInstance( SELF:_AtomizerItemClass ; ...
        ... , SELF, NIL, NIL )
         TSTrace SetCreatedAt oAtomizerItemText
         oAtomizerItemText:_AddTypeInfo( _OR( TS_ATOMIZER_ITEMTYPE_ATRACTED ; ...
        ... , TS_ATOMIZER_ITEMTYPE_MAIN, TS_ATOMIZER_ITEMTYPE_TEXT ) )
         IF oAtomizerItemThis:IsAtractorLeft
            WHILE iAtomized>1U .AND. IVarGet( aAtomized[ iAtomized-1U ], #IsWhite  ; ...
           ... )
               iAtomized-=1U
               ADel( aAtomized, iAtomized )
               zAtomized-=1U
            END
            IF iAtomized>1U .AND. IVarGet( aAtomized[ iAtomized-1U ], #IsMain )
               iAtomized-=1U
               oAtomizerItemText:Value+=IVarGet( aAtomized[ iAtomized ] ; ...
              ... , #Value )
               ADel( aAtomized, iAtomized )
               zAtomized-=1U
            END
         END
         oAtomizerItemText:Value+=IVarGet( aAtomized[ iAtomized ], #Value  ; ...
        ... )
         ADel( aAtomized, iAtomized )
         zAtomized-=1U
         IF oAtomizerItemThis:IsAtractorRight
            WHILE iAtomized<=zAtomized .AND. IVarGet( aAtomized[ iAtomized ], #IsWhite  ; ...
           ... )
               ADel( aAtomized, iAtomized )
               zAtomized-=1U
            END
            IF iAtomized<=zAtomized .AND. IVarGet( aAtomized[ iAtomized ], #IsMain  ; ...
           ... )
               oAtomizerItemText:Value+=IVarGet( aAtomized[ iAtomized ] ; ...
              ... , #Value )
               ADel( aAtomized, iAtomized )
               zAtomized-=1U
            END
         END
         AIns( aAtomized, iAtomized )
         zAtomized+=1U
         aAtomized[ iAtomized ]:=oAtomizerItemText
      END
   END
   IF ALen( aAtomized )<>zAtomized
      ASize( aAtomized, zAtomized )
   END
   SELF:_ItemCreationBlocked-=1U
   TSTrace Leave
RETURN aAtomized