picture on [(h1,v1)][-(h2,v2)]
picture off [,pictHandleVar&]
picture on statement initiates "picture recording" for the current output window. The
picture off statement turns off picture recording.
while picture recording is on, all drawing commands and text-display commands which are sent to the window are "recorded" in a special data structure called a picture. The internal format of a picture is identical to that of a resource of type "
PICT". After picture recording is turned off, you can display or print the picture, or attach it to a picture field, or save it to disk (as a "
PICT" resource or a "
Every picture has a frame, an imaginary rectangle which is stored as part of the picture's data structure. Usually, but not always, the picture itself is contained within the frame. The frame is used as a reference to determine how the picture should be scaled and positioned when the picture is later displayed or printed. The picture recording is cropped to the recording window's clip region, which may or may not be the same as the frame rectangle.
picture on statement, the
(h2,v2) parameters specify the upper-left and lower-right corners of a rectangle. If you specify both
(h2,v2), they define the picture's frame. Otherwise, the frame is determined as follows:
If you specify only
(h1,v1), it becomes the frame's upper-left corner; the frame's lower-right corner is set to the current lower-right corner of the window. If you specify only
(h2,v2), the picture's frame is set to the rectangle
(0,0)-(h2,v2). If you specify neither
(h2,v2), the picture's frame is set to the window's current rectangle.
picture off statement, a handle to the recorded picture is returned in
pictHandleVar&, if it's specified.
pictHandleVar& must be a long-integer variable, or a
Handle variable. The value returned in
pictHandleVar& is the same as the value returned by the
By default, drawing commands are not visible on the screen while they're being recorded. If you want the picture to be visible while you're recording it, you must call the Toolbox procedure
SHOWPEN after you start recording. If you do this,
SHOWPEN must be "balanced" by a call to the
HIDEPEN procedure, before you turn off picture recording. For example:
call SHOWPEN 'show while recording
'[execute drawing commands here]
call HIDEPEN 'balance the call to SHOWPEN
Only one window can have picture-recording enabled at any given time; you cannot "nest"
picture on/picture off pairs. If you switch output windows while picture recording is on, any drawing commands sent to the new output window will not be recorded.
You cannot "temporarily" turn off the recording of a picture. Each call to
picture off completes a picture, and each call to
picture on starts a brand new picture. However, it is possible to effectively "append" one picture to another, by "inserting" an old picture inside a new one. For example:
picture off, circlePict&
'"Append" more drawing commands:
picture on 'start a new picture
picture ,circlePict& 'This gets recorded in new pict box 20,20 to 50,50
picture off, pictHandle& 'contains circle & box
Your program is responsible for releasing the memory occupied by pictures created with the
picture on/picture off statements. Use the
kill picture statement to do this, once you're finished using the picture handle.
Drawing commands which plot icons are not recorded in pictures.
picture function; picture statement; kill picture