Did you not read my response, or must I quote myself?
2. The best way is to draw a rectangle over the whole screen for your fade out; you can pick any color you like to make another effect (red pain flashes, white lighting glare, etc) but you must always vary the opacity. And easy way to do so is to use a float value for your fade in/out, 0 is hide and 1 is show, and multiply it by 255 -- for good programming practice wrap that in a "round()" conversion to make certain there wouldn't be an overflow or type assignment bug.
Although I forgot you could just use a call to Min and be done with it.[pascal]Alpha := Min(Round(255*Percent,255)); // Percent is 0.0-1.0[/pascal]