View Single Post
Old 02-15-2007, 08:48 AM
Merrion's Avatar
Merrion Merrion is offline
Ultimate Contributor

* Guru *
Join Date: Sep 2001
Location: Dublin, Ireland
Posts: 1,828
Default MCL Print Form Helper component

One of the most common questions is "how can I print / print preview my form"? This is quite easily done by getting the form to "draw itself" on the printed page but this is often unsatisfactory because:
* The location of components on the form may not be where you want them on the printed page
* Text is drawn at screen resolution
* Every control is drawn (e.g. buttons, the form border etc.)

The attached component addresses the problem in a different manner.
What you do is drop a FormPrintHelperComponent component onto your form an it extends each control with a bunch of new properties (look in the properties window for each control in the section named "MCL Form Print Helper"). You then set these to indicate:
* Whether the control should be printed
* Whether to print it as Text, Image or Owner Drawn
* The boundary rectangle to print it in
* The vertical / horizontal alignment within that area
* Font and background/foreground colour to use etc.

You can then preview the result in design time (the component has a smart tag menu) and preview or print it at run time.

Additionally if you set the print mode for a control to be "owner drawn" the control will raise an event when the form is being printed to allow you to print the form however you feel ...

(This is an early release - I'm going to add the niceties of grid printing and multi-page printing etc. at a later release)
Attached Images
File Type: jpg preview_in_design_mode.JPG (53.7 KB, 145 views)

Last edited by Timbo; 10-12-2007 at 08:30 AM. Reason: Previous attachment removed - full source code is in most recent attachment on this thread
Reply With Quote