He dejado una nueva copia de MyRpt (todo en un único fichero prg), con algunos problemas corregidos:
-El efecto que dice Silvio, yo lo he notado no al cambiar de XP a Win7, sino al cambiar de una impresora a otra, por ejemplo de mi impresora local a PdfCreator. He modificado una línea del método Activate() y unas pocas del método PrintSay, de RptRun. Tras estas modificaciones he hecho pruebas con un fichero emf de fondo y ya no hay diferencias de una impresora a otra ni de XP a Win7. Sin fichero emf, antes había diferencias de tamaño del documento entre la salida impresa directamente a la impresora o a través de PdfCreator, tras estas modificaciones ahora son exactamente iguales.
-En el método PrintSay() he añadido que pinte el color de fondo del recuadro de texto del item si lo tiene, antes no lo pintaba.
-He añadido una variable static cimpresora que se puede pasar a la llamada MyRpt():New() para asignarla. Así podremos utilizar la misma impresora que tengamos declarada en nuestro programa y no la impresora activa como hasta ahora.
-He modificado de nuevo los métodos PosTop() y PosBottom() porque la modificación anterior daba un problema al seleccionar items de una section.
-Yo no he notado cuelgues por mover los items, como me ha apuntado Lucas. No obstante lo tengo pendiente de revisar porque no se pueden colocar en el sitio exacto con el ratón (si modificando el valor nTop y nLeft en sus propiedades). Estoy utilizando FWH 13.08
Sigo dándole vueltas...