Gracias por tu ayuda, he encontrado la solucion, no se bien que hace pero funciona, use el procedimiento Dormant del objeto TBitmap.
Aparentemente Handle y SaveToClipboardFormat usan 2 copias distintas del bitmap, al usar Dormant libero una de ellas (creo que la del Handle).
el codigo queda asi:
try
MyBitmap.Handle := hbmTempBitmap;
MyBitmap.Dormant;
MyBitmap.SaveToClipBoardFormat(MyFormat,AData,APalette);
ClipBoard.SetAsHandle(MyFormat,AData);
finally
|