This issue has come up on the public Delphi newsgroups and I replied briefly
with some additional information and thought that perhaps a better explaination
of the issue might be useful/interesting at least to some people.
In C#Builder, Delphi 8.0 and now Delphi 2005 the readme states that the
HTML/ASP.NET designer do not support switching of modes while the designer is
visible. Now you might be wondering why? What’s the problem? Well here is the
answer (in what is likely more detail than perhaps anyone wants):
The Galileo IDE (what we call it internally) which is the host for C#Builder,
Delphi 8 and now Delphi 2005 supports two modes for the code editor window,
docked and undocked. This, more or less, means either a single window IDE or a
floating version (like all previous releases of Delphi). In order to switch
modes a lot of “stuff” has to happen behind the scenes to
ensure that the switch works properly.
The main reason the HTML/ASP.NET designer does not support switching modes is
that the MSHTML
control (which we use as the design surface) has to be destroyed and recreated.
That sounds easy enough but the problem is that you could be in the middle of a
document that has not yet been save which is where the complications start. In
order to handle the destroy/recreate of the browser window the content has to be
streamed off and then restored after the designer is recreated. This isn’t
necessarily a problem either, although you’d lose context information like
selection and caret position in the process, but it has to be performed at the
right time in order to work correctly. Currently, the IDE is implemented so
that designers don’t have to have intimate details of what the rest of the IDE
is doing. They get notifications when various events occur and can respond
accordingly however the dock/undock event is not one of the events that is
currently propogated to the designers making this a more difficult problem to
fix. In the end, it’s simply come down to us focusing more on delivering
improvements to the designer itself since we felt that this issue probably won’t
effect a large number of customers. Having said that I will say that fixing
this problem is on our radar and hopefully something we can get to soon.