From my experience SetGadgetShape is deadly slow and buggy.
Use SetGadgetLayout(gadget:TGadget,Left,Right,Top,Bottom) instead and I'm sure the redrawing problems will be gone forever.
Use SetGadgetLayout(gadget:TGadget,Left,Right,Top,Bottom) instead and I'm sure the redrawing problems will be gone forever.