Many developers have also noted that 'undocked' layout works better on multiple
monitors. I don't think so - D2006 works just fine in 'docked' mode. The important
thing is to undock some of the windows and keep others docked or everything goes
Something you definitely don't want to do is undock Object Inspector and Messages.
Weirdest things start happening if you do.
In case you're wondering how I have organized my Delphi desktop, here's the picture:
As you can see, my primary monitor is on the right and secondary on the left. This configuration alone makes problems in VCL-based programs. For example, poDesktopCenter form position is calculated incorrectly - but that's another story.
Main monitor is filled with the Editor (of course!), onto which Object Inspector, Tool Palette, and Messages are docked. I said it before and I'll say it again: it is a wise man who keeps Object Inspector and Messages docked to the Editor.
On the left monitor I have Project Manager and ModelMake Code Explorer docked together (also, when needed, Model View appears here), small windows for To-Do List and Structure (to see syntax errors while I'm typing), another window shared between Find References and Refactorings and one hold-them-all container where other useful stuff is bunched together (Clipboard History from GExperts, Breakpoint List, Event Log etc).
I also have a slightly narrower layout for the time when I need more space (to watch TV, for example):
In this layout, Refactorings and Find References are moved into the hold-them-all window and other windows are rearranged to use less space.
Sometimes I need lots of space - for example when comparing current code with an older version, or to look at the project specifications, various standards, internet pages ... To use Delphi on a single monitor, I keep Project Manager and Tool Palete docked and minimized on the right side of the Editor:
Rarely used windows (Refactorings, Find References etc) take their share off the Editor space (for the short time they are visible):
When debugging, I'm usually only using one monitor (and in some rare cases even less):
That leaves me one full monitor to run the application on. This helps a lot, especially when debugging OnPaint handlers.