А что мешает написать процедуру, которая на вход принимает Canvas и на ней все отрисовывает? А уж какую канву ей подсунуть - это уже дело вызывающего кода. Собственно, так и сделал в одной из своих программ. Процедура отрисовки для печати и превью одна и та же, только "подсовывается" разная канва (ну там еще небольшие игры с пересчетом координат и размеров, т.к. кол-во точек у принтера обычно существенно больше, чем у экрана).
|