WebHub Release Notes for v2.031, v2.032, v2.033, v2.034, v2.035, v2.036, v2.037
This file was last updated 07-Nov-2011  
Skip to: WebHub Object Pascal Components    The Hub    WebHubAdmin    WebHubView    Runners    Demos    Docs  

WebHub Object Pascal Components

Alternate "stage 2" syntax v2.032, v2.033, v2.034, v2.035
WebHub now includes new features which enable easy multilingual site development and close integration with MacroMedia DreamWeaver MX 2004.
To ensure backwards compatibility, this "stage 2" syntax is disabled by default. To activate, add the following to your application-level INI file:
The Stage 2 syntax is documented separately. WebHub v2.032 uses Stage 2.00.
WebHub v2.033 uses Stage 2.11.
WebHub v2.034 uses Stage 2.12.
WebHub v2.035 and v2.036 use Stage 2.13.
WebHub v2.039+ use Stage 2.14.
HREF strongly recommends that you do NOT adopt Stage 2 syntax for large, existing, in-production applications yet. The reason for this recommendation is that the syntax details are in fairly rapid flux, and while we are making every effort to provide enough information for everyone to get everything right at each stage, we still expect some minor wording changes coming up between now and the end of July 2004. Nonetheless, we strongly encourage you to try it with a new or existing site (say one with less than than 10 web pages).
Confirmed session conflict problem v2.031
If you are using session cookies, you can have a problem where one surfer gets into the session data of another surfer. (Reference support ticket #00402)
This is confirmed fixed in v2.152. Other intermediate versions have not been tested for this issue.
To fix this, you need to recompile your custom WebHub application with new components.
New DreamWeaver integration panel v2.032...v2.037
HREF is providing a new panel (lib\whDream.pas) which enables remote editing of WebHub HTML Stage 2 files with DreamWeaver v7.0.1. "But wait! This is impossible!!" Actually, no, it is possible, although very difficult to imagine before you see it work.
Sign up to listen to, and watch, the recorded eseminars from 24-Jun-2004 and 30-Jul-2004. Ask for your login via href.com/contact.
Requires: WebHub Designer DreamWeaver Manager extension.
The two eseminars are available without audio here and here. The first one provides a general introduction to WebHub Syntax Stage 2, and the second one goes in-depth into using the Dreamweaver MX 2004 WebHub Extension.
New WebHub Wizard for use in Delphi IDE v2.031
A new wizard, lib\D#\whWizRunWebAppD#.bpl, provides a menu for use when compiling with Delphi. On the Delphi menu, select "Projects > WebHub" for these new features: Your app is run based on the project output directory. WebHubAdmin and WebHubView are run from the "bin" folder under the path specified in the registry setting, SOFTWARE\HREF Tools\Install\InstallRoot\WebHub. The hub service is controlled through "net start hub" and "net stop hub".

This wizard works with Hub v2.029+ and is included with "WebHub Object Pascal Components" v2.031+.

TWebDataGrid is now much more XHTML compliant
The table tag includes an ID based on the component name. v2.033
All syntax is in lowercase.v2.033
Input tags have / endings in order to be XHTML compliant.v2.033
The id will be the Name of the grid.v2.034
The class will always be "webDataGrid-table".v2.034
The associated buttons will be class "webDataGrid-buttons".v2.034
The associated controls will be class "webDataGrid-controls".v2.034
You should set the Border property to a blank string in your Delphi code, for maximum XHTML compliance. v2.034
The Border property defaults to a blank string is the component's constructor. It was 'BORDER' in earlier versions. v2.035
TWebDataScan and TWebDataGrid allow escaped quotation marks within Delimiter list v2.034
Please see the HTQ1 demo for sample code -- study its INI file.
TWebDataScan and TWebDataGrid no longer send extra blank button v2.035
Although this may not have been noticable unless you were using styled UL and LI tags for your buttons, prior versions inadvertently sent out an extra </li_tag><li_tag> pair. Correct functioning can be seen in the HTQ1 demo.
Support added for lingvo within filtered URLs v2.037
If you set the AppDefault named cgiJumpWithLingvo to true, and you set cgiUseFilter to true, and you have ProjectLingvo set non-blank, and the site visitor's guestlingvo literal is different from the ProjectLingvo, then (and only then!) will JUMPs be made in the form /xxx/appid:pageid:session:cmd where xxx is the guestlingvo.
To use this feature, you must be running StreamCatcher v1.5.2.0 with the following settings


An upcoming version of StreamCatcher should make this quicker to configure; meanwhile you are welcome to use this syntax to improve your search engine ratings.
Demonstration site: www.earthwaverecords.com.
New TWebInfo.OnSetSessionsDir event v2.031
This event is called after TWebInfo sets a new session directory. This will occur during initialization and if the SessionsDir becomes unavailable (goes offline, e.g. on a LAN).
"DO" page works with TWebActionNoSaveState objects v2.032
Previously, the "DO" page worked only with TWebAction objects.
New TWebApp.AppSettings list added for your custom application settings v2.032
You may now segregate your custom application settings in your INI file, rather than keeping them in [TWebApp.Defaults]. This new list works exactly like TWebApp.Defaults -- all the same access methods within Delphi, and in WHTML.
In the INI file, use section named [TWebApp.AppSettings] as of v2.036. (Section was [TWebApp.Settings] in v2.032 to v2.035)
In WHTML, use %=AppSetting.key=% to reference the value of a single setting.
In Delphi, use pWebApp.AppSetting['key'] to reference the value of a single setting, and pWebApp.AppSettings to reference the complete list of settings.
TWebObjectInspector installs to HT+ palette v2.032
We added an icon for TWebObjectInspector and set it to automatically install to the HT+ palette.
Preview Panel enhanced v2.032
The preview panel (webhub\lib\whHtmlVw.pas) has been reviewed, enhanced, and reintegrated into WebHub. It is now used in the WebHubAdmin module, and we highly recommend that developers add it to WebHub applications which run as applications. (Of course, the preview panel is not relevant if you are running as an invisible service.)
On the "HTML > Files" panel, the "HTML > Pages" panel, the "HTML > Chunks" panel, and the "In/out > Output" panel, you will now find an icon on the toolbar which sends the relevant content to the preview panel. Thus, if you have selected a file, the file will be previewed. If you have selected a page, the page will be previewed. If you have selected a chunk, the chunk will be previewed. If you are on the output panel, whatever is shown will be previewed.
If you have graphics on your pages that you would like to see within the preview panel, set the ExportDir to the root of your site, e.g.
ExportDir=d:\Projects\WebHub Demos\Live\WebRoot\
The preview feature works with both WebHub "classic" syntax and the new "Stage 2" syntax. You have more control and more features when you use the "Stage 2" syntax. The rules that work with DreamWeaver files also apply to files in the "HTML > Files" panel. For example, you can use the whdesegno section to specify an active page, and thereby preview only one page out of a file containing multiple pages.
The preview panel has always required a third party component, THtmlViewer, by David Baldwin, available in HREFShop. HREF made two patches to the THtmlViewer source which will be included in David's next release. Meanwhile customers are welcome to a copy of the patched files. Request htmlsubs.pas and StyleUn.pas from techsupport. The only other compilation requirement is that you include the webhub\lib\whAppOut.pas panel as well.
NB: there are no longer any compiler directives associated with the use of the preview panel. Previous versions compiled the input and output panels differently depending on whether the preview panel was in use; now the detection is automatic; the preview panel itself activates features on the other panels. For this reason, if you use the preview panel, you must also use the "HTML > Files" panel and the "Input/Output > Output" panel, or modify the whHtmlVw.pas source to suit your own needs.
Syntax Highlighting in W-HTML editor supports Stage 2 Syntax v2.033
The WebHub HTML panel now highlights the new WHTEKO, WHFOLIO, etc. tags in red.
Stage 1 syntax is still highlighted (unchanged).
WebHub macro affixes are now variable v2.035
A new unit, whMacroAffixes.pas, defines MacroStart and MacroEnd to be %= and =% respectively, which gives the same behavior as WebHub through v2.034.
You may override these values with alternate 2-character strings as shown:
  uses whMacroAffixes;

  pWebApp.AppID := 'MyAppID';
  MacroStart := '(~';
  MacroEnd := '~)';
HREF will only support %=...=% and (~...~) affixes, i.e. the old style and the new one.
To change existing database content to the new affixes, you could use a series of replaces, like this:
SessionSaveTimeOffset: Integer property added v2.033
If this value is non-zero, all session VAR files closed by the app will be datetime stamped with a value that is offset from "now" by the indicated number of minutes.
Improved XHTML compliance v2.033
Changed HTML code to lowercase and ended singleton tags for greater XHTML compliance, in the following units: ApiBuilt, cgiVars, dmHubApp, dmHubGridData, dmWebHub, htdbwapp, htmlBase, htmlCore, htmlSend, htwebapp, HubCall, isaWrite, wdbForm, wdbgrid, wDBScan, wdbsorce, webApp, webDrop, webGrid, webLGrid, webList, WebObjInsp, webOutln, webScan, webSend, webSGrid, webVars, whAsync, whChatApp, whDemoViewSource, whHtmlVw, whJPEG.
All TABLE tags have IDs and no longer default to having a BORDER.
We used this checklist and you may, too.
Support for ColdFusion style comment tag added v2.033
The following comment is completely stripped, regardless of whether the opening and/or closing tags are at the beginning of a line.
WebHub SET macro syntax extended v2.036
The following syntax will be supported within the SET macro (only):
NB: WebHub v2.034 does not fully implement the SET macro. Please use v2.036+.
To see an example of these SET commands done with parentils, see the SHOWCASE demo and navigate in to the pgReusable page (Entrance -> Easier HTML -> Reusable Pieces of HTML).
TWebPage.PageMode renamed to TWebPage.PageOutputTarget v2.033
Delphi icons added for TtpSharedLongint and TtpTrayIcon v2.033
These components had been using the default Delphi icon, and now have their own.
Here is code you may use for testing the SET macro
%= and =% changed to variables MacroStart and MacroEnd v2.035
All WebHub Component code now uses the variables MacroStart and MacroEnd, defined in htmConst.pas to '%=' and '=%' as pChars. This is in preparation for enabling future versions of WebHub to operate with '(~' and '~)' as the definitive start and end markers. Removing the = symbol from the start and end markers makes many expressions which are currently problematic (e.g. SET|x=%=webtime=%) unambiguous for parsing by human eyes, the WebHub file loader, the WebHub editor and the WebHub Dreamweaver extension.
WebHub programmers are strongly advised to make their own code use these variables.
Automatic Sequencing Syntax Clarified v2.035
This change applies to all syntax stages.
Old: defaults=sequence.on,next.pageid,prev.pageid,final.pageid,up.pageid (all as a single PageDefault value)
New: whSequence=on or auto, whSequenceNext=pageid, whSequencePrev=pageid, whSequenceFinal=pageid, whSequenceUp=pageid (each as separate PageDefault values)
Old value of "RESET" within pagedefaults is no longer relevant to Syntax Stage 2.13+
TWebListGrid caption and column separators made configurable v2.035
Previously the caption delimiter was ~ and the column separator was |. These are now configurable through the CaptionDelimiter and ColumnDelimiter properties. They default to the old values when the macro affixes as %= ... =%, and default to ~ and | otherwise.
Handling of exceptions within TWebAction components improved v2.036
Now, if an exception is raised by a TWebAction component and the TWebApp.OnError procedure "handles" the error (sets the Handled flag to true), the rest of the page will still be generated. Previously the page output was truncated at the point of the exception.
Exceptions within TWebDataSource are now raised so that they can be handed by your TWebApp.OnError event. This includes errors where the database connection becomes unavailable.
SendBufferedChunk method on ThtWebDBApp renamed to SendBufferedString v2.037
Change all references in your PAS files from SendBufferedChunk to SendBufferedString.
OnTraceChunk event on TWebOutputApp renamed to OnTraceTekero v2.037
ChunkDataSource property on ThtWebDBApp renamed to DynContentDataSource v2.037
ChunkFieldname property on ThtWebDBApp renamed to DynContentFieldname v2.037
CacheDbChunks property on ThtWebDBApp renamed to CacheDBContent v2.037
If you are not using the shared lib\dmWhDbAp.pas file, open your DFM and change the property name from CacheDBChunks to CacheDBContent before opening the PAS version of your data module.
TWebApp.OnPageComplete event added v2.037
This event fires when the output stream is absolutely complete, including all anchors having been expanded. A read-only copy of the output stream is passed to the event.
Removed TWebOutput.SendSpacers v2.037
Here is the code in case you were using it:

procedure TWebOutput.SendSpacers(HowMany:Byte);
  Buffer: array[0..255] of char;
This code has been discontinued because in Firefox, the "magicspace" character renders as a ? symbol.
The units which had been using magicspace (wdbgrid, websgrid, weblgrid, weboutln, webapp), now use the non-breaking-space.
OnBeforeTranslation and OnAfterTranslation events added to TWebOutputApp v2.037
These events fire before and after translated keys are sent to the output stream. The purpose is to let you add extra HTML which might be required to give the correct font or other styling for certain languages.
Example code follows
New IfInDW macro v2.037
This conditional macro determines whether the code is running within Dreamweaver Design View, or not.
Syntax: IfInDW|do this||else this
Security layer added for remote Dreamweaver use v2.037
If your WebHub appliation contains the dmDream.pas unit, you should customize three key event handlers.
  1. pWebCommandLine.OnFrontDoorTriggered (uses webCall unit) (See DemoAppFrontDoorTriggered in whDemoInitialize.pas)
  2. DataModuleDreamWeaver.OnDesignPage (uses dmDream unit) (See DemoAppDesignPageCalled in whDemoInitialize.pas)
  3. dmWebHubApp.OnSessionInURL (declared in dmWebHub.pas but you should reference the derived unit which contains your web app object) (See DemoAppSessionInURL in whDemoInitialize.pas)
Customize OnFrontDoorTriggered so that even if your application generally enforces a FrontDoor, a Dreamweaver user can still access the remotedesign page without being bounced to the FrontDoor. If your app does not use a FrontDoor, you do not need to configure this event handler.
Customize OnDesignPage to add security rules which determine access to the remotedesign and remotepreview pages. This is where you can restrict access to a particular IP number, or range of IP numbers.
Customize OnSessionInURL to allow a certain session number, or range of session number, to access the remotedesign page. Use this in conjunction with specifying a session number in the Dreamweaver DesignDynSrc definition, e.g. remoteadv=http://demos.href.com/scripts/runisa.dll?adv|remotedesign|remoterefresh|2323|.

WebHub Demos

Icon changed from shell to leaf v2.033
The icons in htDemos.res have been updated.
Lite demos upgraded to Syntax Stage 2.12 v2.034
All demos upgraded to Syntax Stage 2.13 v2.035
All demos implement security regarding remote editing v2.037
pWebApp.SequenceButtons property improved v2.040
SequenceButtons now sends a surrounding <div class="whSequenceButtons"> ... </div>.

The Hub

Hub.exe runs only as a service v2.030
Since v2.030, the shipping hub runs only as an invisible service. If you missed all the announcements, please see the prior release notes.
VAR file deletion when SessionsDir goes offline v2.031
TWebVarsDelete now subscribes to event TWebInfo.OnSetSessionsDir so that it knows when the SessionsDir goes offline and when it is restored. In no case is the temporary session path written to the INI file; therefore if the Hub is restarted, it knows what the desired SessionsDir is.
On Xeon systems, Hub supports 8-CPU machines running 10 instances v2.032
Previous editions of the Hub only supported 4 CPUs, and that is still the limit on all except Xeon hyperthreading systems.
Slight improvement to Hub logic when app first connects v2.037
In some cases, the Hub did not have the correct handle for an EXE instance, after it first started. Fixed.
This change was in response to customer requests to trace the cause of the "dot problem", where on some machines, the first request to the system returns only a dot (period). This problem has not been fully resolved and is on hold until the runner/hub/app ipc system is refactored.

WebHub Admin

Preview Panel is active v2.032
Use the new Preview toolbar action to preview W-HTML Files, Pages and Chunks within WebHubAdmin, including GIF, PNG and JPG graphics. To use this feature, look for a new icon on "HTML > Files", "HTML > Pages", and "HTML > Chunks" toolbars. The icon picture shows a document on top of a planet.

Note: you can "undock" the Preview panel and arrange the windows on your screen so that you can see both the "HTML > Pages" panel and the Preview panel at the same time.

Source for the Preview Panel is available for use in your own projects, in the lib\whHtmlVw.pas file. It requires the use of the THtmlViewer component, for sale in HREFShop.


WebHub View

No changes
none planned until WebHub interprocess comms ("IPC") have been completely rewritten.


runwin.exe fixed v2.036
Recent versions had been giving an access violation due to late initialization of WebHub shared memory.
Known issue: posting form data using http and IE 6
If you are getting a "blank page response" using Microsoft IE when posting form data over http, you can determine whether you have a known problem as follows. Try the posting using Mozilla Firefox, and if that works, try the posting over https. If using https solves the problem, you have a known problem in IE 6. HREF does not know when Microsoft will fix this issue.


No changes released yet
Expect all demos synchronized to the public release of WebHub by 15-May-2004. We are working on editing all demos to use XHTML and CSS standards. Recommended reference for your own edits: Designing With Web Standards (book) by Jeffrey Zeldman.

WebHub Documentation

WebHub.hlp file updated v2.031
WebHub.hlp contains accurate info about the WebHubView and WebHubAdmin modules, and about the Object Pascal Components as of release v2.031.

IIS 6 Installation Tips

Runisa.dll with IIS 6
By default, DLL files do not execute in IIS6, so you have to explicitly enable runisa.dll to work. Open the IIS manager program, open the "Web Service Extension" node. Click the link "Add a new web service extension". The name can be anything, e.g. "WebHub Runner". Browse to the runisa.dll file. Set the status to "Allowed".
WebHub on Win2003 with Microsoft Data Execution Prevention ("DEP")
Depending on the service packs , you may find that Win2003 includes DEP which is Data Execution Prevention.
To adjust DEP settings, go into Control Panel > System > Advanced > Performance. Your choices are (a) set DEP to monitor only Windows programs, or (b) leave it monitoring all programs but add hub.exe as an exception.
StreamCatcher with IIS 6
For StreamCatcher users only: open the master config file (SCConfig_Master.cfg) in notepad and disable the Bytes Transferred Report prior to starting IIS:

FREE/Trial/Evaluation Version

File uploading enabled v2.032
In earlier versions, evaluation users could not try the file upload feature. That restriction is gone. (To be confirmed.)
Licensing system changed v2.035
The Hub.exe is now exactly the same for registered and evaluation users; the license code determines functionality, and expiration dates are effective.

Copyright © 2004 HREF Tools Corp. All Rights Reserved. TPACK and STREAMCATCHER are registered trademarks of HREF Tools Corp.