Colin,
>So it's basically development by trial and error
Mostly that's true. No one has mentioned the fontmetric() functions they can be used to help figure out how wide to make things. But even that's not perfect, it really is a function of the data. Especially when using proportional width fonts. The kerning greatly affects the size of the fields. It also depends if the field is mixed case or all uppercase. A happy medium that seems to work well is to use FieldWidth * 1.5 * ( AverageCharWidth + MaxCharWidth ) / 2 for a mixed case field. If you are using an uppercase field you should FieldWidth * MaxCharWidth.