Hmm I'm not sure SDL will be of any help here, since this application seems to be VCL-based ()

The flicker you talk about is not normal. How do you make your double-buffering ? Do you draw to an offscreen canvas and then blit the whole offscreen canvas to the visible one ?

If you could extract the core paint loop of your app, we might help you further.