I have a couple of potential solutions for the ListWidth issue.
1) Kixforms TNG will have two new properties called TextWidth and TextHeight. They return the Width and Height (respectively) of a string, given the current font setting (Name,Size,Bold). Can be used in a loop to determine the largest pixel width required.
2) In a subsequent release, will implement two new properties called PreferredWidth and PreferredHeight. This will automatically calculate the pixel width of the longest string (PreferredWidth) and the sum of the Height of all strings (PreferredHeight).
Hope this turns the trick. Kixforms TNG is just days away. Just finishing-off some imaging development and almost finished creating a "short-list" of objects, properties, methods and events. Will advise asap.