home *** CD-ROM | disk | FTP | other *** search
/ PC Direct 1996 May / PCDMAY.ISO / software / clarion / 3rdparty / tools / library / twfix2.exe / TVTABCTL.TPW < prev   
Encoding:
Text File  |  1995-04-23  |  15.5 KB  |  439 lines

  1. #CONTROL (TVerticalTabControl, 'TABOGA-Vertical Tab Control'), DESCRIPTION('TABOGA-Vertical Tab Control'),MULTI, WINDOW
  2.   CONTROLS
  3.    REGION,AT(,,22,125),USE(?TabControl),#REQ
  4.   END
  5. #LOCALDATA
  6. TABX            SHORT,AUTO
  7. TABY            SHORT,AUTO
  8. TABNewX         SHORT,AUTO
  9. #ENDLOCALDATA
  10. #BOXED('Taboga Vertical Tab Control Prompts')
  11.   #DISPLAY('Use single words, less than 8 characters long...'),AT(10,,175)
  12.   #BUTTON('Tabs to Use'),MULTI(%TABData,%TABTabText &' - '&%TABTabImage),AT(10,,175)
  13.      #PROMPT('Tab &Text:',@s8),%TABTabText
  14.      #PROMPT('Tab &Image:',@s80),%TABTabImage
  15.   #ENDBUTTON
  16.   #PROMPT('Wraps Control:',CONTROL),%TABOverControl,REQ
  17. #ENDBOXED
  18. #!
  19. #!
  20. #!-------------------------------------------------------------------------
  21. #ATSTART
  22. #MESSAGE('Initializing Tab Control',3)
  23. #IF(~ITEMS(%TABData))
  24.  #ERROR (%Procedure & ' Error: No Tabs defined...!')
  25.  #ABORT
  26. #ENDIF
  27. #IF(~%TABOverControl)
  28.  #ERROR (%Procedure & ' Error: Need to specify a Control to Wrap around....!')
  29.  #ABORT
  30. #ENDIF
  31. #DECLARE(%TABText),MULTI
  32. #DECLARE(%TABTabCount)
  33. #DECLARE(%TABUseImages)
  34. #FOR(%TABData)
  35.    #ADD(%TABText, %TABTabText)
  36.    #IF(%TABTabImage)
  37.        #SET(%TABUseImages, %True)
  38.    #ENDIF
  39. #ENDFOR
  40. #SET(%TABTabCount, ITEMS(%TABText))
  41. #DECLARE(%TabControl)
  42. #DECLARE(%TPrompt)
  43. #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance)
  44.   #CASE(%ControlOriginal)
  45.   #OF('?TabControl')
  46.      #SET(%TabControl,%Control)
  47.   #ENDCASE
  48. #ENDFOR
  49. #!
  50. #DECLARE(%TABMakeGray)
  51. #IF(EXTRACT(%WindowStatement,'GRAY'))
  52.  #SET(%TABMakeGray, %False)
  53. #ELSE
  54.  #SET(%TABMakeGray, %True)
  55. #ENDIF
  56. #DECLARE(%TPromptLen)
  57. #!
  58. #SET(%TPrompt,'?TabPrompt:'&%ActiveTemplateInstance)
  59. #!
  60. #! Extract List
  61. #DECLARE(%TABControlAT)
  62. #DECLARE(%TABCurrentX)
  63. #DECLARE(%TABCurrentY)
  64. #DECLARE(%TABStartX)
  65. #DECLARE(%TABStartY)
  66. #DECLARE(%TABTabWidth)
  67. #DECLARE(%TABXPos)
  68. #DECLARE(%TABYPos)
  69. #DECLARE(%TABWidth)
  70. #DECLARE(%TABHeight)
  71. #!
  72. #!
  73. #FIX(%Control,%TABControl)
  74. #SET(%TABControlAT, EXTRACT(%ControlStatement, 'AT'))
  75. #SET(%TABControlAT, SUB(%TABControlAT,4,LEN(%TABControlAT)-4))
  76. #INSERT(%TABExtractAT(Taboga), %TABControlAT)
  77. #SET(%TABTabWidth,%TABWidth-2)
  78. #!
  79. #!
  80. #FIX(%Control,%TABOverControl)
  81. #SET(%TABControlAT, EXTRACT(%ControlStatement, 'AT'))
  82. #SET(%TABControlAT, SUB(%TABControlAT,4,LEN(%TABControlAT)-4))
  83. #INSERT(%TABExtractAT(Taboga), %TABControlAT)
  84. #!
  85. #!
  86. #SET(%TABCurrentX,%TABXPos-%TABTabWidth-10) #! Start of TabRegion
  87. #SET(%TABCurrentY,%TABYPos-12)              #! Start of TabRegion
  88. #SET(%TABStartX,%TABCurrentX)
  89. #SET(%TABStartY,%TABCurrentY)
  90. #!
  91. #!
  92. #!
  93. #DECLARE(%TStdTabHeight)
  94. #SET(%TStdTabHeight,18)
  95. #DECLARE(%TStdStraightLen)
  96. #SET(%TStdStraightLen,%TABTabWidth-2)
  97. #!
  98. #ENDAT    #!ATSTART
  99. #!
  100. #!
  101. #!-------------------------------------------------------------------------
  102. #AT(%DataSectionBeforeWindow)
  103.   #MESSAGE('Vertical Tab Control Declarations',3)
  104. #INSERT(%TABVTabDataSection)
  105. #ENDAT
  106. #!
  107. #!
  108. #!
  109. #!-------------------------------------------------------------------------
  110. #AT(%BeforeAccept)
  111. Starting:%ati   = TRUE
  112. %TabControl{PROP:XPos} = %TABStartX 
  113. %TabControl{PROP:YPos} = %TABStartY
  114. %TabControl{PROP:Width} = %TABTabWidth
  115. %TabControl{PROP:Height} = %TABOverControl{PROP:Height}+22
  116. DO TAB%ActiveTemplateInstance:CreateControls
  117. SETPENCOLOR(COLOR:BLACK)
  118. SETPENWIDTH(1)
  119. DO TAB%ActiveTemplateInstance:RefreshTabs
  120. #ENDAT
  121. #!
  122. #!
  123. #!
  124. #!-------------------------------------------------------------------------
  125. #AT(%ControlEventHandling,%TabControl,'Accepted')
  126. #INSERT(%TABVTabEventHandling)
  127. #ENDAT
  128. #!
  129. #!
  130. #!------------------------------------------------------------------------
  131. #AT(%ProcedureRoutines)
  132.   #MESSAGE('Tab Control Routine',3)
  133. #INSERT(%TABVTabRoutines)
  134. #ENDAT
  135. #!
  136. #!
  137. #!
  138. #! in case we have a TResizableBrowseExtension
  139. #!-------------------------------------------------------------------------
  140. #AT(%TABAfterResizingBrowseWindow)   
  141. DO TAB%ActiveTemplateInstance:RefreshTabs
  142. #ENDAT
  143. #!
  144. #!
  145. #! in case we have a TMoveableControl
  146. #!-------------------------------------------------------------------------
  147. #AT(%TABAfterMovingControl,%TabControl)
  148. DO TAB%ActiveTemplateInstance:RefreshTabs
  149. #ENDAT
  150. #!
  151. #! in case we have a TResizableBrowseBox
  152. #!-------------------------------------------------------------------------
  153. #AT(%TABAfterMovingBrowseBox,%TabControl)
  154. DO TAB%ActiveTemplateInstance:RefreshTabs
  155. #ENDAT
  156. #!
  157. #!**************************************************************************
  158. #!  Name..........: %TABTabDataSection
  159. #!  Description...: This group writes the DataSection code
  160. #!**************************************************************************
  161. #GROUP(%TABVTabDataSection)
  162. #DECLARE(%ati)
  163. #DECLARE(%i)          #! instance number, for various uses
  164. #DECLARE(%locP)
  165. #DECLARE(%locCtr)
  166. #SET(%ati,%ActiveTemplateInstance)
  167. #SET(%locCtr,32*%ActiveTemplateInstance)
  168.   #FOR(%TABText)
  169.       #SET(%i, INSTANCE(%TABText) )
  170. %TPrompt_%i        EQUATE(%(%locCtr+1))
  171.       #SET(%locCtr, %locCtr + 1)
  172.     #IF(%TABUseImages)
  173.       #SELECT(%TABData, %i)
  174.       #IF(%TABTabImage)
  175. ?TImage:%ati_%i    EQUATE(%(%locCtr+1))
  176.       #SET(%locCtr, %locCtr + 1)
  177.       #ENDIF
  178.     #ENDIF
  179.   #ENDFOR
  180. ?TABTopLine:%ati         EQUATE(%(%locCtr+1))
  181. ?TABRightLine:%ati       EQUATE(%(%locCtr+2))
  182. ?TABBottomLine:%ati      EQUATE(%(%locCtr+3))
  183. ?TABLeftBotLine:%ati     EQUATE(%(%locCtr+4))
  184. ?TABLeftTopLine:%ati     EQUATE(%(%locCtr+5))
  185. ?TABTopWhite:%ati        EQUATE(%(%locCtr+6))
  186. ?TABLeftBotWhite:%ati    EQUATE(%(%locCtr+7))
  187. ?TABLeftTopWhite:%ati    EQUATE(%(%locCtr+8))
  188. #!
  189. #!
  190. #!
  191. #!
  192. P:%ati GROUP
  193. #FOR(%TABText)
  194.     SHORT(%(%TABCurrentX+2))                      #<! Upper Left corner
  195.     SHORT(%TABCurrentY)
  196.     SHORT(%(%TABCurrentX+%TStdStraightLen+2))     #<! Upper-Right corner
  197.     SHORT(%TABCurrentY)
  198.     SHORT(%(%TABCurrentX+%TStdStraightLen+2))     #<! Lower-Right corner
  199.     SHORT(%(%TABCurrentY+%TStdTabHeight))
  200.     SHORT(%(%TABCurrentX+2))                      #<! Lower-left corner
  201.     SHORT(%(%TABCurrentY+%TStdTabHeight))
  202.     SHORT(%TABCurrentX)                           #<! Left lower corner
  203.     SHORT(%(%TABCurrentY+%TStdTabHeight-2))
  204.     SHORT(%TABCurrentX)                           #<! Left upper corner
  205.     SHORT(%(%TABCurrentY+2))
  206.     #SET(%TABCurrentY, %TABCurrentY+%TStdTabHeight)
  207. #ENDFOR
  208.        .
  209. Pol:%ati   SHORT,DIM(%TABTabCount,12),OVER(P:%ActiveTemplateInstance)
  210. #SET(%TABCurrentX,%TABXPos)
  211. ActiveTab:%ati  BYTE(1),STATIC
  212. Starting:%ati   BYTE
  213. #!
  214. #!
  215. #!**************************************************************************
  216. #!  Name..........: %TABTabEventHandling
  217. #!  Description...: This group writes the Event Handling code
  218. #!**************************************************************************
  219. #GROUP(%TABVTabEventHandling)
  220. TabX = MouseX()
  221. TabY = MouseY()
  222. TabNewX = ActiveTab:%ati        ! Save active tab...
  223.   #FOR(%TABText)
  224.     #SET(%i,INSTANCE(%TABText))
  225.     #IF(INSTANCE(%TABText) = 1)
  226. IF (TabX>=Pol:%ati[%i,11] AND TabX<=Pol:%ati[%i,3] AND TabY>Pol:%ati[%i,2] AND TabY<Pol:%ati[%i,6])
  227.     #ELSE
  228. ELSIF (TabX>=Pol:%ati[%i,11] AND TabX<=Pol:%ati[%i,3] AND TabY>Pol:%ati[%i,2] AND TabY<Pol:%ati[%i,6])
  229.     #ENDIF
  230.    #! New Active
  231.    ActiveTab:%ati  = %i
  232.   #ENDFOR
  233. END
  234. DO TAB%ActiveTemplateInstance:ChangeTab
  235. #!
  236. #!
  237. #!**************************************************************************
  238. #!  Name..........: %TABTabRoutines
  239. #!  Description...: This group writes the ROUTINES
  240. #!**************************************************************************
  241. #GROUP(%TABVTabRoutines)
  242. !-------------------------------------------------------------------------
  243. TAB%ActiveTemplateInstance:CreateControls   ROUTINE
  244.    #! Enclose
  245.    CREATE(?TABTopLine:%ati,CREATE:Line,%TabControl)
  246.    CREATE(?TABRightLine:%ati,CREATE:Line,%TabControl)
  247.    CREATE(?TABBottomLine:%ati,CREATE:Line,%TabControl)
  248.    CREATE(?TABLeftBotLine:%ati,CREATE:Line,%TabControl)
  249.    CREATE(?TABLeftTopLine:%ati,CREATE:Line,%TabControl)
  250.    #!CREATE(?TABTopWhite:%ati,CREATE:Line,%TabControl)
  251.    CREATE(?TABLeftBotWhite:%ati,CREATE:Line,%TabControl)
  252.    CREATE(?TABLeftTopWhite:%ati,CREATE:Line,%TabControl)
  253.    #!
  254.    SETPENWIDTH(1)
  255.    ?TABTopLine:%ati{PROP:XPos}   = %(%TABStartX+%TABTabWidth)
  256.    ?TABTopLine:%ati{PROP:YPos}   = %TABStartY
  257.    ?TABTopLine:%ati{PROP:Width}  = %TABOverControl{PROP:Width}+18
  258.    ?TABTopLine:%ati{PROP:Height} = 0
  259.    #!
  260.    ?TABRightLine:%ati{PROP:XPos}   = %(%TABStartX+%TABTabWidth+18)+%TABOverControl{PROP:Width}
  261.    ?TABRightLine:%ati{PROP:YPos}   = %TABStartY
  262.    ?TABRightLine:%ati{PROP:Width}  = 0
  263.    ?TABRightLine:%ati{PROP:Height} = %TABOverControl{PROP:Height}+22
  264.    #!
  265.    ?TABBottomLine:%ati{PROP:XPos}   = %(%TABStartX+%TABTabWidth)
  266.    ?TABBottomLine:%ati{PROP:YPos}   = %(%TABStartY+22) + %TABOverControl{PROP:Height}
  267.    ?TABBottomLine:%ati{PROP:Width}  = %TABOverControl{PROP:Width}+18
  268.    ?TABBottomLine:%ati{PROP:Height} = 0
  269.    #!
  270.    #!
  271.    ?TABLeftBotLine:%ati{PROP:XPos}   = %(%TABStartX+%TABTabWidth)
  272.    ?TABLeftBotLine:%ati{PROP:YPos}   = %(%TABStartY+22) + %TABOverControl{PROP:Height}
  273.    ?TABLeftBotLine:%ati{PROP:Width}  = 0
  274.    ?TABLeftBotLine:%ati{PROP:Height} = ActiveTab:%ati*%TStdTabHeight - (%TABOverControl{PROP:Height}+22)
  275.    #!
  276.    #!
  277.    ?TABLeftTopLine:%ati{PROP:XPos}   = %(%TABStartX+%TABTabWidth)
  278.    ?TABLeftTopLine:%ati{PROP:YPos}   = %TABStartY
  279.    ?TABLeftTopLine:%ati{PROP:Width}  = 0
  280.    ?TABLeftTopLine:%ati{PROP:Height} = (ActiveTab:%ati - 1) * %TStdTabHeight
  281.    #!
  282.    #!
  283.    #!
  284.    #! White lines
  285.    #!
  286.    SETPENCOLOR(COLOR:White)
  287.    SETPENWIDTH(2)
  288.    LINE(%(%TABStartX+%TABTabWidth),%(%TABStartY+1),%TABOverControl{PROP:Width}+17,0)
  289.    #!?TABTopWhite:%ati{PROP:XPos}   = %(%TABStartX+%TABTabWidth)
  290.    #!?TABTopWhite:%ati{PROP:YPos}   = %(%TABStartY+1)
  291.    #!?TABTopWhite:%ati{PROP:Width}  = %TABOverControl{PROP:Width}+15
  292.    #!?TABTopWhite:%ati{PROP:Height} = 0
  293.    #!?TABTopWhite:%ati{PROP:COLOR}  = COLOR:White
  294.    #!
  295.    #!
  296.    ?TABLeftBotWhite:%ati{PROP:XPos}   = %(%TABStartX+%TABTabWidth)+1
  297.    ?TABLeftBotWhite:%ati{PROP:YPos}   = %(%TABStartY+22) + %TABOverControl{PROP:Height} -1
  298.    ?TABLeftBotWhite:%ati{PROP:Width}  = 0
  299.    ?TABLeftBotWhite:%ati{PROP:Height} = ActiveTab:%ati*%TStdTabHeight - (%TABOverControl{PROP:Height}+23)
  300.    ?TABLeftBotWhite:%ati{PROP:COLOR}  = COLOR:White
  301.    #!
  302.    #!
  303.    ?TABLeftTopWhite:%ati{PROP:XPos}   = %(%TABStartX+%TABTabWidth)+1
  304.    ?TABLeftTopWhite:%ati{PROP:YPos}   = %TABStartY+1
  305.    ?TABLeftTopWhite:%ati{PROP:Width}  = 0
  306.    ?TABLeftTopWhite:%ati{PROP:Height} = ((ActiveTab:%ati - 1) * %TStdTabHeight) -1
  307.    ?TABLeftBotWhite:%ati{PROP:COLOR}  = COLOR:White
  308.    #!
  309.    #!
  310.    SETPENCOLOR(COLOR:BLACK)
  311.    UNHIDE(?TABTopLine:%ati)
  312.    UNHIDE(?TABRightLine:%ati)
  313.    UNHIDE(?TABBottomLine:%ati)
  314.    UNHIDE(?TABLeftBotLine:%ati)
  315.    UNHIDE(?TABLeftTopLine:%ati)
  316.    #!UNHIDE(?TABTopWhite:%ati)
  317.    UNHIDE(?TABLeftBotWhite:%ati)
  318.    UNHIDE(?TABLeftTopWhite:%ati)
  319.    #!
  320.    #!
  321.    #IF(%TABUseImages)
  322.      #FOR(%TABData)
  323.         #SET(%i,INSTANCE(%TABData))
  324.       #IF(%TABTabImage)
  325.    CREATE(?TImage:%ati_%i,CREATE:Image,%TABControl)
  326.    ?TImage:%ati_%i{PROP:XPos}    = Pol:%ati[%i,1]
  327.    ?TImage:%ati_%i{PROP:YPos}    = Pol:%ati[%i,12]
  328.    ?TImage:%ati_%i{PROP:Width}   = 12
  329.    ?TImage:%ati_%i{PROP:Height}  = 9
  330.    ?TImage:%ati_%i{PROP:Text}     = %TABTabImage
  331.    UNHIDE(?TImage:%ati_%i)
  332.       #ENDIF
  333.      #ENDFOR
  334.    #ENDIF
  335. !-------------------------------------------------------------------------
  336. TAB%ActiveTemplateInstance:RefreshTabs   ROUTINE
  337. !  BLANK(%TABStartX,%TABStartY,24,%TABOverControl{PROP:Height}+22)
  338. !  BLANK(0,0,0,0)
  339.    #!
  340.    #!
  341. #FOR(%TABText)
  342.    #SET(%i, INSTANCE(%TABText))
  343.    #SET(%TPromptLen, LEN(%TABText))
  344.    #SET(%TPromptLen, (%TPromptLen*4))
  345.    #!
  346.    #!  Write the inactive polygons
  347.    #!  and strings
  348.    #!
  349.    SETPENCOLOR(COLOR:Black)     ! set border to black
  350.    POLYGON(Pol:%ati[%i],COLOR:Silver)
  351.    #INSERT(%TABExtras,%False,%i)
  352.    IF Starting:%ati                              ! Create it only when starting
  353.       CREATE(%TPrompt_%i,CREATE:string,%TabControl)
  354.       %TPrompt_%i{PROP:FontName} = 'MS Serif'
  355.       %TPrompt_%i{PROP:FontSize} = '7'
  356.       %TPrompt_%i{PROP:Text} = '%TABText'
  357.       %TPrompt_%i{PROP:Trn} = 1
  358.    .
  359.    %TPrompt_%i{PROP:FontColor} = COLOR:BLACK
  360.    %TPrompt_%i{PROP:FontStyle} = FONT:Regular
  361.    SETPOSITION(%TPrompt_%i,Pol:%ati[%i,9]+2,Pol:%ati[%i,8]-7,%TPromptLEN,8)
  362.    ?TImage:%ati_%i{PROP:XPos}    = Pol:%ati[%i,1]
  363.      #!
  364.    UNHIDE(%TPrompt_%i)
  365. #ENDFOR
  366.    Starting:%ati = FALSE              ! So we don't "CREATE" the prompts again...
  367.    #!
  368.    #! write the active one over...
  369.    CASE(ActiveTab:%ati)
  370.    #FOR(%TABText)
  371.       #SET(%i, INSTANCE(%TABText) )
  372.    OF %i
  373.       SETPENCOLOR(COLOR:Black)     ! set border to silver
  374.       POLYGON(Pol:%ati[%i],COLOR:Silver)
  375.       #INSERT(%TABExtras,%True,%i)
  376.       %TPrompt_%i{PROP:FontStyle} = FONT:Bold
  377.       SETPOSITION(%TPrompt_%i,Pol:%ati[%i,9]+2,Pol:%ati[%i,8]-7,,)
  378.       ?TImage:%ati_%i{PROP:XPos}    = Pol:%ati[%i,1]+1
  379.    #ENDFOR
  380.    END
  381.    ?TABLeftBotLine:%ati{PROP:Height} = ActiveTab:%ati*%TStdTabHeight - (%TABOverControl{PROP:Height}+23)
  382.    ?TABLeftTopLine:%ati{PROP:Height} = (ActiveTab:%ati - 1) * %TStdTabHeight
  383.    ?TABLeftTopWhite:%ati{PROP:Height} = ((ActiveTab:%ati - 1) * %TStdTabHeight) -1
  384.    ?TABLeftBotWhite:%ati{PROP:Height} = ActiveTab:%ati*%TStdTabHeight - (%TABOverControl{PROP:Height}+23)
  385.    ?TABLeftTopWhite:%ati{PROP:COLOR} = COLOR:White
  386.    ?TABLeftBotWhite:%ati{PROP:COLOR} = COLOR:White
  387.  
  388. !-------------------------------------------------------------------------
  389. TAB%ActiveTemplateInstance:ChangeTab   ROUTINE
  390.    IF ActiveTab:%ati  <>  TABNewX      ! If changed Tabs...
  391.       DO TAB%ActiveTemplateInstance:RefreshTabs
  392.       HIDE(%TABControl)
  393.       UNHIDE(%TABControl)
  394.       TABNewX = ActiveTab:%ati
  395.       #EMBED(%TABChooseTab,'TABOGA-Choose a New Tab'),%ActiveTemplateInstance,MAP(%ActiveTemplateInstance,'TABOGA-Code to Execute After Choosing a New Tab')
  396.    END
  397. #!
  398. #!
  399. #!
  400. #!**************************************************************************
  401. #!  Name..........: %TABExtras
  402. #!  Description...: This group writes the code to make the tabs appear
  403. #!                  as the Microsoft Access tabs...
  404. #!  Parameters....: %TActive - Are we writing the Active Tab?
  405. #!                  %i - instance number of the tab we are writing...
  406. #!**************************************************************************
  407. #GROUP(%TABExtras, %TActive, %i)
  408.   #IF(%TActive)    #! For the active instance...
  409. #! Part we need to erase
  410. !BLANK(Pol:%ati[%i,3],Pol:%ati[%i,4]+1, 3, Pol:%ati[%i,6]-Pol:%ati[%i,4]-3)
  411. !BLANK(0,0,0,0)
  412. SETPENWIDTH(1)
  413. SETPENCOLOR(COLOR:Silver)
  414. BOX(Pol:%ati[%i,3],Pol:%ati[%i,4]+2, 3, Pol:%ati[%i,6]-Pol:%ati[%i,4]-3,COLOR:Silver)
  415. #! White
  416. SETPENCOLOR(COLOR:White)
  417. SETPENWIDTH(2)
  418. LINE(Pol:%ati[%i,1]+1,Pol:%ati[%i,2]+1,Pol:%ati[%i,3]-Pol:%ati[%i,1],0)
  419. LINE(Pol:%ati[%i,11]+1,Pol:%ati[%i,12]+1,0,Pol:%ati[%i,10]-Pol:%ati[%i,12]-2)
  420. SETPENWIDTH(1)
  421. LINE(Pol:%ati[%i,11]+1,Pol:%ati[%i,12]+1,3,-3)
  422. LINE(Pol:%ati[%i,11]+1,Pol:%ati[%i,12],2,-2)
  423. SETPENWIDTH(2)
  424. #! Gray
  425. SETPENCOLOR(COLOR:Gray)
  426. LINE(Pol:%ati[%i,9]+1,Pol:%ati[%i,10],Pol:%ati[%i,7]-Pol:%ati[%i,9],Pol:%ati[%i,8]-Pol:%ati[%i,10])
  427. BOX(Pol:%ati[%i,7]+1,Pol:%ati[%i,8]-1,Pol:%ati[%i,5]-Pol:%ati[%i,7]-1,1,COLOR:Gray)
  428. SETPENWIDTH(1)
  429.   #!---------------------------------------------------------------
  430.   #ELSE     #! if ~%TActive
  431.   #!---------------------------------------------------------------
  432. SETPENCOLOR(COLOR:White)
  433. LINE(Pol:%ati[%i,1],Pol:%ati[%i,2]+1,Pol:%ati[%i,3]-Pol:%ati[%i,1]-1,0)
  434.   #!---------------------------------------------------------------
  435.   #ENDIF
  436.   #!---------------------------------------------------------------
  437. #!
  438. #!
  439.