WebHub Object Pascal Components

TPack base classes: GUI functionality separated v2.102
Key TPack units have been organized into two parts, e.g. tpAction.pas and tpActionGUI.pas. See also tpUIBase.pas which is a new unit.
If you open forms in the Delphi IDE, and they use a GUI aspect such as action lists, Delphi will automatically add tpActionGUI to your interface uses clause for you. Without this change to the uses clause, your project will not compile.
Component status handled differently v2.102
On TtpComponents, instead of setting the Status property to some text to make it display on the status bar, you should now call SetObjectStatus (if you want the name of the component included in the message), or set the ApplicationStatus property.
if Assigned(pWebApp.ComponentStatusBar) then
  pWebApp.ComponentStatusBar.Status := 'something.';
should be replaced with:
pWebApp.ApplicationStatus := 'something.';
You must delete all references to the ComponentStatusBar property from all DFM files.
For example, if you see an error message such as "gridCatalog.ComponentStatusBar does not exist" that means that the DFM still has the property ComponentStatusBar defined in the DFM (on the component whose name is gridCatalog); you should delete that line from the DFM file.
A FuzRegex script has NOT yet been created for these changes because of the danger/difficulty.
Changes to built-in pages v2.102
The echo page has been removed from the app. It still exists in the runner.
The speed page has been cleaned up / fixed.
Note that built-in pages are disabled by default for security reasons. To enable them, set pWebApp.Security.BuiltInPagesEnabled := True; in the OnGUIInit event handler of TtpProject.
Previously this command generated 'checked' for radio choices which had already been selected.
Now it correctly generates 'checked="checked"'.
See also: Firefox, Radio buttons and javascript
Form to HTML converter reviewed v2.102
Packages ready for D07 to D12.
Credit Card Validation reviewed v2.102
Sample application provided for use outside WebHub.
TwhDropDownUSAStates added v2.103
Source in webDrop.pas
This component generates a select list of the US states, as a demonstration of a customized dropdown, and to be helpful during prototyping, at least in the USA.
The base class in webDrop.pas was simplified and enhanced. It now uses a StringVar to save state. The name of the StringVar defaults to the component name + '.Value', or you can pass an alternative variable name through HtmlParam, i.e. mydropdown.execute|myvarname.
The htdr "HREF Tools Drop Down" demo has been upgraded to use these conventions. Latest source is in CVS; instructions on demos.href.com as usual.
New: pWebApp.Session.DeleteStringVarByName v2.103
If, from Delphi, you want to completely remove a session variable (as the CLEAR command does), you can call this new function. After deletion, the ASSIGNED command will return False for the variable in question.
Known problem: TADOQuery, CoInitialize, as-service v2.104
If you run as a service using MultiTypeApp, and you use TADOQuery (which uses COM), an exception will be raised when the form or datamodule containing TADOQuery is created. The same EXE will work find when running as a normal Windows application.
Workaround: call CoInitialize (uses ActiveX) before the CreateForm statement.
To be fixed in v2.105 of WebHub.
Known problem: duplicate TwhPage after RejectSession v2.102
Source: webBase.pas
Support reference #00423
Fix is required in TwhBasicApp.SetThePageID when Optimization.PreCreatePageObjects is False. The symptom, after RejectSession fires, is entries in the application log file such as
2013-Feb-27 15:36:12:809 (ERROR) SetName TwhPage A component named whPage already exists
2013-Feb-27 15:36:12:810 (ERROR) SetName TwhPage A component named HTQ1_HTQ1 already exists

The Hub, WebHubAdmin, ZMAdmin

ZMAdmin: Quick management of server profiles v2.102
The right-click menu in ZMAdmin, when you are on a local or an other ServerProfile, will let you Add, Delete, Duplicate and Rename. The Add and Delete features were already in place. Duplicate and Rename features are new (29-May-2009).

WebHub Runners

No GUI units linked into runners v2.102
As the TPack and WebHub units have the GUI further isolated, the runners automatically becomes cleaner and leaner.
Allow >2048 bytes of cookies v2.102
The isapi runner now allows up to 8kb of cookies, and 16kb total http headers.
The previous limit was 2kb for all http headers.
Version and Echo responses have been improved v2.104
Version: shows you the server date/time even when it is not running on localhost. This helps you figure out whether the display in the browser is new or cached.
Echo page: no longer gives a blank response when an exception occurs within its review of the configuration or when it tries to make files in its logging and upload folders. Instead runisa.dll now reports errors, including the exception message if one occurred. This is relevant on new installs when the runner does not have permission to read the configuration XML files and/or does not have sufficient rights to its own folders.