Canvas is the drawing area of the surface.
__property TIvoryCanvas* Canvas;
Description
Use Canvas to get the drawnig area of the surface. Canvas can only be used in the OnPaint event handler of the surface, or after calling GrabCanvas.
Notes
In DirectDraw, a surface requires a DC (Devices Context) to draw on it. The DC is a temporary object, and it should be released when you don't need it. The problem is much more acute than in standard Windows mode, because the copy between surfaces is impossible until you release their DCs. So in Ivory Draw, a DC is only grabbed if it's necessary, and it's always released at the end of the OnPaint event. So you can't use the Canvas outside the OnPaint event handler, unless you grab the canvas on your own by GrabCanvas, and release it by ReleaseCanvas when you finished drawing.
Also note that Canvas in Ivory Draw is not the same as VCL object Canvas. They differ in several issues.