PAINT Must Not Use Fixed-Length String Patterns (38273)



The information in this article applies to:

  • Microsoft Basic Professional Development System for MS-DOS 7.0
  • Microsoft Basic Professional Development System for MS-DOS 7.1
  • Microsoft QuickBASIC 4.0
  • Microsoft QuickBASIC 4.0b
  • Microsoft QuickBASIC 4.5
  • Microsoft BASIC Compiler for MS-DOS and OS/2 6.0
  • Microsoft BASIC Compiler for MS-DOS and OS/2 6.0b

This article was previously published under Q38273

SUMMARY

The following command can be used to fill in an enclosed polygon:
   PAINT (x,y), pat, border
				
In this case, x and y represent screen coordinates inside the polygon; the figure is drawn in a color specified by "border" and the variable "pat" may be either an integer or a character string. If "pat" is an integer, the fill is done with a solid color. But if "pat" is a string value, it represents a fill pattern.

A string value for "pat" works correctly in the QB.EXE environment whether the string value is a fixed-length string or a variable-length string. However, the compiled .EXE version of such a program produces an "Illegal function call" error when "pat" is a fixed-length string.

This design limitation applies to QuickBasic Versions 4.00, 4.00b, and 4.50, to Microsoft Basic Compiler Versions 6.00 and 6.00b for MS-DOS and MS OS/2, and to Microsoft Basic PDS Version 7.00 for MS-DOS and MS OS/2.

MORE INFORMATION

Note: Fixed-length strings are not implemented in earlier versions of these products.

The following is a code example:
DIM SHARED pat AS STRING * 16

pat = "cc3c0c00"
SCREEN 9
WINDOW (0, 0)-(1250, 1000)
COLOR 1, 0
CIRCLE (600, 200), 150
COLOR 3, 0
PAINT (600, 200), pat, 1
INPUT a$
				

Modification Type:MinorLast Reviewed:8/16/2005
Keywords:KB38273