Method XbpWindow():invalidateRect() Foundation
Mark a window area as invalid (for redraw).
:invalidateRect( [<aRectangle>], [<lChilds>], [<nRgnOp>] ) --> lSuccess
Constant | Description |
---|---|
XBP_INVREGION_LOCK | Region is locked for manipulation, redraw is issued upon release. <aRectangle> specifies the initial invalid region. |
XBP_INVREGION_DISCARD *) | Current invalid region is discarded. If no region is locked using XBP_INVREGION_LOCK, the complete area in <aRectangle> is redrawn. |
XBP_INVREGION_RELEASE | The invalid region is released and redrawn. May be combined with one of the logical region operators. |
XBP_INVREGION_AND | New invalid region is the intersection of the current region with the area specified in <aRectangle>. |
XBP_INVREGION_OR | New invalid region is the union of the current region and the area specified in <aRectangle>. |
XBP_INVREGION_XOR | Same as XBP_INVREGION_OR, but overlapping areas are excluded. |
XBP_INVREGION_DIFF | New invalid region is the current region with the area specified in <aRectangle> excluded. |
|
This method returns the value .T. (true) if the specified area could be marked as invalid, otherwise it returns .F. (false).
The method :invalidateRect() specifies a rectangular area of the Xbase Part as invalid. This causes the area to be redrawn and the event xbeP_Paint to be generated. The following example code would completely invalidate an Xbase Part causing it to be entirely redrawn:
oXbp:invalidateRect()
To redraw only parts of an Xbase Part, several calls to method :invalidateRect() may be combined to define the invalid area. The following code snippet invalidates the rectangle {50,50,150,150}. However, the inside of the rectangle is not redrawn. Instead, a logical XOR operator is applied to exclude parts of the rectangle from the invalid region.
// Specify initial rectangle to redraw and
// lock the invalid region
oxbp:invalidaterect( {50,50,150,150},, XBP_INVREGION_LOCK )
// Exclude the inside of the rectangle from
// the invalid region and redraw
oxbp:invalidaterect( {60,60,140,140},, XBP_INVREGION_XOR + XBP_INVREGION_RELEASE )
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.