Thanks Joe. > Date: Mon, 19 Mar 2007 13:15:14 -0700 > From: [EMAIL PROTECTED] > > It sounds like you have overlapping Canvases. That's generally a Bad > Idea, and I don't recommend it. If your interface is very complex and > custom, maybe what you want is a single big Canvas, in which you draw > and handle everything. > > Re: Overlapping: I've got a small (button) canvas over a large background canvas. but did avoid partial overlaps which does produce unspeakable horrors. The interface wasn't all that complex until I wanted background gradient effects, transparent buttons, translucent group boxes and a tab control that behaved differently than the built-in or commercial controls. From a nicely encapsulated button or two, the thing mushroomed. This may be the time to refactor into one large canvas that does it all. > Hmm, I'm surprised that works. Passing False to the Refresh method > tells it NOT to erase (re-establish the background) before invoking the > Paint event. I never use this method myself, but then again, I hardly > ever call Refresh at all. Much better to just draw directly to the > canvas.graphics property. > > Can't answer that. I'm actually finding that passing True and passing False both seem to behave the same way once everything is redrawn.
Regarding just drawing directly to canvas.graphics -- that won't permit the background to show through. If I want to change the caption, icon or outline of a transparent button how do I erase the current graphic without erasing the background? Me.Refresh causes the underlying control to repaint itself effectively erasing the entire control. Then I can redraw the button with the new effects in place. -Tom _______________________________________________ Unsubscribe or switch delivery mode: <http://www.realsoftware.com/support/listmanager/> Search the archives: <http://support.realsoftware.com/listarchives/lists.html>
