home *** CD-ROM | disk | FTP | other *** search
/ Master 95 #1 / MASTER95_1.iso / corel6 / draw / select.csc < prev    next >
Encoding:
Text File  |  1995-08-11  |  3.9 KB  |  147 lines

  1. REM Selects all the Objects of a color. It then applies a fill
  2. REM Select.csc July 20, 1995
  3.  
  4. REM This is set up for RGB color mode. All the objects must be drawn in RGB for this to work.
  5. REM This is just an example of a search and replace script.
  6. REM This script could be easily edited to do something other than apply a uniform fill
  7.  
  8. CONST ColorType = 5        'RGB
  9. DIM NumObjectsInDrawing&
  10. DIM Matches&(100)
  11. DIM RedTest AS BOOLEAN
  12. DIM GreenTest AS BOOLEAN
  13. DIM BlueTest AS BOOLEAN
  14.  
  15. BEGIN DIALOG Dialog1 314, 150, "Select Objects of RGB Value:"
  16.     TEXT  10, 30, 50, 8, "Red Value"
  17.         SPINCONTROL  70, 30, 50, 12, RedVal%
  18.     TEXT  10, 52, 50, 8, "Green Value"
  19.         SPINCONTROL  70, 52, 50, 13, GreenVal%
  20.     TEXT  10, 76, 50, 8, "Blue Value"
  21.         SPINCONTROL  70, 76, 50, 13, BlueVal%
  22.     TEXT  126, 30, 50, 8, "Tolerance +/-"
  23.         SPINCONTROL  180, 30, 50, 13, RedTol%
  24.     TEXT  126, 53, 50, 8, "Tolerance +/-"
  25.         SPINCONTROL  180, 53, 50, 12, GreenTol%
  26.     TEXT  126, 76, 50, 8, "Tolerance +/-"
  27.         SPINCONTROL  180, 76, 50, 13, BlueTol%
  28.     CHECKBOX  240, 30, 36, 10, "Ignore", RedIgnore%
  29.     CHECKBOX  240, 52, 40, 10, "Ignore", GreenIgnore%
  30.     CHECKBOX  240, 76, 38, 10, "Ignore", BlueIgnore%
  31.     OKBUTTON  56, 107, 65, 17
  32.     CANCELBUTTON  186, 107, 70, 17
  33. END DIALOG
  34.  
  35. REM Set Defaults
  36. NumObjectsInDrawing = 20
  37. RedVal = 255
  38. GreenVal = 255
  39. BlueVal = 255
  40. RedTol = 10
  41. BlueTol = 10
  42. GreenTol = 10
  43. RedIgnore = 0
  44. GreenIgnore = 0
  45. BlueIgnore = 0
  46.  
  47. RETRY:
  48. ret = DIALOG(dialog1)
  49. IF CANCEL THEN STOP
  50.  
  51. REM Check Values
  52.  
  53.     IF RedVal > 255 OR RedVal < 0 THEN
  54.         BEEP
  55.         MESSAGE "RED VALUE IS INVALID"
  56.         RedVal = 255
  57.         GOTO RETRY
  58.     END IF
  59.     IF GreenVal > 255 OR GreenVal < 0 THEN
  60.         BEEP
  61.         MESSAGE "GREEN VALUE IS INVALID"
  62.         GreenVal = 255
  63.         GOTO RETRY
  64.     END IF
  65.     IF BlueVal > 255 OR BlueVal < 0 THEN
  66.         BEEP
  67.         MESSAGE "BLUE VALUE IS INVALID"
  68.         BlueVal = 255
  69.         GOTO RETRY
  70.     END IF
  71.     IF RedTol > 255 OR RedTol < 0 THEN
  72.         BEEP
  73.         MESSAGE "RED TOLERANCE IS INVALID"
  74.         RedTol = 255
  75.         GOTO RETRY
  76.     END IF
  77.     IF GreenTol > 255 OR GreenTol < 0 THEN
  78.         BEEP
  79.         MESSAGE "GREEN TOLERANCE IS INVALID"
  80.         GreenTol = 255
  81.         GOTO RETRY
  82.     END IF
  83.     IF BlueTol > 255 OR BlueTol < 0 THEN
  84.         BEEP
  85.         MESSAGE "BLUE TOLERANCE IS INVALID"
  86.         BlueTol = 255
  87.         GOTO RETRY
  88.     END IF
  89.  
  90. WITHOBJECT DRAW
  91.     ret = true
  92.     .UnSelectAll
  93.  
  94. DIM Booltest as boolean            'Boolean set to false when its back to the first object
  95. Booltest = TRUE
  96.  
  97.     .SelectNextObject -1
  98.     FirstID& = .GetObjectsCDRStaticID()    
  99.  
  100. REM For Each Object
  101.     DO WHILE Booltest
  102.         .SelectNextObject -1
  103.         IF .GetObjectsCDRStaticID() = FirstID THEN Booltest = False
  104.         .GetUniformFillColor t&, Color1&, Color2&, Color3&, Color4& 
  105. REM Booleans FOR each color type
  106. REM Within tolerance OR ignored.
  107.         IF t = ColorType THEN
  108.             RedTest = (ABS(Color1 - RedVal) < RedTol) OR (RedIgnore = 1)
  109.             GreenTest = (ABS(Color2 - GreenVal) < GreenTol) OR (GreenIgnore = 1)
  110.             BlueTest = (ABS(Color3 - BlueVal) < BlueTol) OR (BlueIgnore = 1)
  111.             IF RedTest AND GreenTest AND BlueTest THEN
  112.                 Count% = Count% + 1
  113. REM Store The Objects that satisfy conditions.
  114.                 Matches(count) = .GetObjectsCDRStaticID()
  115.             END IF        
  116.         
  117.         ELSE
  118.             Message "Non RGB Object found and Ignored"
  119.         END IF
  120.     LOOP
  121.     .UnSelectAll
  122.     
  123. REM Select all in array
  124.     FOR i% = 1 TO Count
  125.         .SelectObjectOfCDRStaticID Matches(i)
  126.     NEXT i
  127.  
  128. REM Get the fill color
  129. BEGIN DIALOG FillColorDialog 140, 150, "Select Objects of RGB Value:"
  130.     TEXT  10, 30, 50, 8, "Red Value"
  131.     SPINCONTROL  70, 30, 50, 12, RedFill%
  132.     TEXT  10, 52, 50, 8, "Green Value"
  133.     SPINCONTROL  70, 52, 50, 13, GreenFill%
  134.     TEXT  10, 76, 50, 8, "Blue Value"
  135.     SPINCONTROL  70, 76, 50, 13, BlueFill%
  136.     OKBUTTON  13, 107, 51, 17
  137.     TEXT  6, 7, 121, 18, "Please select RGB values for the fill color"
  138.     PUSHBUTTON  72, 107, 51, 17, "&None"
  139. END DIALOG
  140. ret = DIALOG(FillColorDialog)
  141. IF ret = 3 THEN STOP            'If None chosen
  142.  
  143. REM This applies the fill to the selected objects
  144.     .ApplyUniformFillColor 5, RedFill%, GreenFill%, BlueFill%, 0
  145.  
  146. END WITHOBJECT
  147.