Modified as-service units are available (FREE) upon request for anyone building WebHub apps as services.
TtpDataModule not needed v2.048
There is no need to use a TtpDataModule in forms or data modules containing TWebAction components.
In earlier versions, it was used to make components appear on a TWebMenu (or TtpMenu).
Cross-platform XML class v2.049
Thanks to SimDesign in the Netherlands, we are able to include the DCU version of
TNativeXML with WebHub. HREF Tools Corp. has ported TNativeXml
so it will compile in Delphi 5/6/7/9, Kylix 3, and Delphi 2005 for .Net.
The full source is available for € 29.95 via ShareIt from the author.
Subsequent versions of WebHub will use TNativeXML for configuration, tentatively starting Oct 15 2005.
TtpTrayIcon improved v2.048
Until now, the tray icon would operate even if set Active=False and Enabled=False. It now only operates when those are True.
TtpSystemPopup fixed v2.049
Now TtpSystemPopup works stable in all situations (e.g. adding/removing multiple components on form,
modification of the form's menu on the fly, etc.). Unit works on Win32 and .Net platform.
On Linux, the component compiles but works as null object.
tpMenu.pas is free and being phased out v2.048
Due to issues with Kylix and the fact that WebHub is primarily a non-GUI product, we have elected to
de-emphasize the menu feature in WebHub. Thus the TtpMainMenu, TWebMenu and THubMenu are being retired.
Instead we are using Borland's standard TMainMenu, TActionList and a new tpack TtpActionList.
TtpActionList is new v2.048
This component can be pointed to any TtpComponent derivative (including any WebHub component), and it will
generate actions for all components and all verbs contained within the Owner of the given component. This means you
can quickly make all components and verbs within a given data module or form available to your user interface.
WebHub now includes these new action lists in its standard shared data modules (dmWhApp.pas and dmWhDBAp.pas).
The AServer.dpr demo (and soon others) use these new actions to implement its GUI.
Menu no longer changes to show current AppID v2.048
This applies only if your projects use the standard units dmWebHub.pas and whMain.pas.
We are no longer making the menu caption change to display the currently-loaded AppID because (a) that made documentation
of the most important menu choices unnecessarily difficult; and (b) it is easy to determine the AppID from other clues such as the
form caption and tray icon hint.
The menu caption in question is now "WebHubApp".
"App" layer of data module adjusts menu definition v2.048
If you are using whMain.pas but not dmWhApp.pas nor dmWhDbAp.pas, and you want to have clear menu captions when your WebHub EXE
runs as an application, you should copy some newly added code from dmWhApp.pas into the data module which contains your app object. Details follow.
You should add a TtpActionList to your data module, and connect it to your app object. Many actions will be created for you as soon as you make the connection. You may use these actions from any part of your GUI (as done normally in Delphi 5/6/7/9, and Delphi for .Net, and Kylix 3).
You should have an initialization procedure, best named InitWebHubCoreDataModule, which is called prior to Application.Run but after the data module has been created and after the app object has been refreshed.
In your data module, you should adjust the menu items as is done in dmWhApp.pas. After copying in the code, you will notice that it does not compile. You must replace the name of the data module with the name of your own data module to make it compile.
If your app object ComponentName is not exactly 'htWebApp', additionally change the strings containing 'htWebApp' to the exact name.
When you run your app, you should have a WebHubApp menu with menu options such as Properties, Edit INI File, all of which should work.
If you are not using whMain.pas, you can take advantage of the new TtpAction list even easier, because you can either make your main form "uses" the unit containing the TtpActionList and thereby access any of the actions, or you can put the TtpActionList directly into your main form and point it at the app object (even if that is in another unit, just add that unit to the uses clause within the Interface of your main form).
These techniques (finally!) give the developer full control of the menu option choices combined with the leverage of all built-in verbs on all TtpComponents.
As of 3-Aug-2005, 19:00 PST, v2.048 pre-release stage,
we are still working on the View > Toolbar and View > Statusbar toggles. Everything else described above is working.
Related change to TtpComboBar: obsolete properties v2.048
The following properties are obsolete and should be removed from DFM files (likely if you have made your own main form and have used the TtpComboBar)
MenuAfter
MenuTool
MenuVerb
MenuStatus
LeaveSpace
tpHideFromMenu is obsolete; tpHideFromVerbBar is new
Error fixed in dmWebHub.pas, OnBadIP event handler v2.048
The OnBadIP event handler was setting the PageID to a new value (based on an AppDefault), which could be blank,
thereby leading the site visitor to an unexpected location (i.e. a bookmark to ?AppID:PageID:34223 might lead to ?AppID: instead.).
This can be fixed in earlier releases by changing
PageID := AppDefault[cPageIDBadIP];
to
if AppDefault[cPageIDBadIP] <> '' then
PageID := AppDefault[cPageIDBadIP];
Problem with bookmarked sessions fixed v2.048
This case has been fixed: a URL containing a session # where the session was not in use by anyone else. In this case,
WebHub is supposed to bounce the person to a new session, keeping the existing pageid and command. However, prior versions
were getting the PageID wrong. This is now fixed (webCore.pas unit).
LIT command reverted to prior syntax v2.048
The final numeric parameter on the LIT command is now IMPLICITLY expanded.
TtpAppRole component has new feature v2.049
You can now set an "AppID" property on the TtpAppRole component, and it will count up the number of times that
application "instance" has run, even if it is inside EXEs of different names, even if those EXEs are running as a service.
Supported on Delphi 5/6/7/9, Delphi 2005 for .Net, and Kylix 3.
Mail Panel: GUI separated from non-GUIv2.049
whMail.pas is now non-GUI only... required in production applications if you want to use WebMailForm. Be sure to call its Init method.
whpanel_Mail.pas is GUI only... use this if you want the GUI which was previously part of whMail.pas
"Shared" Panel: GUI separated from non-GUIv2.049
whShared.pas is now non-GUI only... required in production applications if you want to use that example of TtpSharedLongint
whpanel_Shared.pas is GUI only... use this if you want the GUI which was previously part of whShared.pas
"Decode" Panel: renamedv2.049
whDecode.pas is now whpanel_Decode.pas
unit whWebInf.pas renamed to whpanel_WebInfoProperties.pasv2.049
This panel (GUI) is available for use during development, to give quick access to the properties on the TWebInfo component.
unit whSessio.pas renamed to whpanel_Sessions.pasv2.049
Generally, developers are advised to use the Sessions panel in WebHubAdmin. However, advanced users may want to include this panel in their projects during testing.
WebHub Wizard for Delphi 9: menu position fixed v2.049
In previous versions for Delphi 9, the WebHub menu appeared under the "Run" menu. It is now located under the Project menu where it belongs.
On TfmMainForm (utMainFm.pas, ancestor of fmTrayForm), the MainToolbar component was removed and
replaced with MainToolBar function. This modification was connected with the porting of TtpComboBar.
Now a TPanel is used inside of TtpComboBar instead of TtpToolbar. You can access the panel through the
TfmMainForm.MainToolBar function.
Cleared ~20 Delphi compiler warnings v2.049
Compiler hints and warnings cleared in various tpack units.
In txtGrid.pas, public "DeleteRow" method renamed to "DoDeleteRow"
In txtGrid.pas, public "Loaded" method renamed to "DoLoaded"
Fixed error in Delphi IDE when ThtWebApp added to empty application v2.049
Access violation in webCore unit - fixed.
ANCHOR command v2.050
The DoClose method was not called in v2.049 due to changes in TPack. This resulted in the ANCHOR command not working.
This has been fixed in v2.050.
dmBasic.pas no longer shipping v2.050
Source was included through v2.049. If you require a copy, ask technical support.
TtpComboBar and TtpToolbar improved v2.050
Added default TtpToolBar to TtpComboBar. Also dependent units were modified to show buttons on TtpComboBar and in the Object TreeView correctly.
Now buttons are positioned right after they were placed on toolbar (previously it was required to reload the form to see the positioning).
The method ButtonsPosition on TtpToolbar is gone; delete it from your code.
Adding an AppID definition, then saving, does not sort the AppIDs alphabetically. Also the Connected > Edit Setups panel never
refreshes; you have to exit and restart to see the saved setting.
Please use WebHubAdmin v2.047- or v2.058+
In Hub and WebHubAdmin, MacroAffixes default to (~...~) v2.049
The macro affixes are now set to (~ and ~) by default.
To override, define AppSetting['MacroAffixes'] such that it is the following 7 characters exactly:
[TWebApp.AppSettings]
MacroAffixes=%=...=%
WebHubAdmin previously supported a parameter named /PercentEquals and that is no longer supported.
WebHub Project Wizard
WebHub New Project wizard sets MacroStart and MacroEnd v2.050
The previous wizard did not set MacroStart and MacroEnd; thus they were defaulting to %= and =% affixes.