WebHub Version .925 Release Notes
Delphi 2 and 3 code available as of 8 May 97, 8:30 PST.
This file updated 13 May 1997
We've had a major change of philosophy on UI code re-use. Out with
form inheritance, in with reparenting panels on the fly. We now
have true code re-use between the Hub's user interface, all the
demos, and any of your custom projects. The property editors now
show up in a tabbed notebook interface -- better organized and
quicker to use. Many of those tabs apply outside the hub, and
may be linked into projects.
TWebDemoApp is no longer required or used. There is no need to
register regapps.pas unless you are working on the Fish Store demo.
All the demos have been reworked to use this new technique. None
of them use ademo2/ademo3 any more, and we recommend that you drop
those out of your own projects as well.
The biggest thing to realize is that it all happens in the DPR file.
The creation order determines which panels get swapped in. If you
want email, you include the unit and create the form. If you don't
want a panel, just delete the CreateForm line.
There are some rules to follow.
This all takes some getting used to, but it has two huge advantages.
(1) It works perfectly across Delphi 2 and 3. (2) You can easily
take UI panels in and out of your project to add/subtract features,
and you can easily reuse features across projects.
- The form that you build for your own work must be derived
from class(TutParentForm). See any of the demos and look at the
appmain.pas file, or open ht\htfrm\appcustm.pas for something
- The form that you are going to swap in must have a unique
- The form must have a panel named pa. Use the file ht\htfrm\appcustm.pas
as a starting point for new forms you want to add in, or just make
a panel named pa.
- The caption of the form will become the notebook tab's caption.
- If you use a vertical bar in the caption, nesting occurs.
Options|A would make a level called Options and nest A below that.
- If you make a toolbar named Toolbar it will swap into the
space at the top of the form automatically, when the panel is
selected. (not fully implemented May 7)
New DPR adjuster utility
Long overdue -- for those of you who install somewhere besides
c:\ht, there is now a utility that will adjust the DPRs in the
HTDEMOS\CODEDEMO tree to match your setup. See ht\htutil\adjdpr.exe.
Its usage is explained in ht\htdemos\htmldemo\whdemos.htm.
New links to all demos
The most common tech support question has been "which demo
should I start from?" We made a new app that lists all the
demos, has links to them for testing and also has 'about' links that
explain the features. This will all install when you install the
current build. htdocs\htdemo\index.htm has links to the new
DEMOS app, or you can just run DEMOS as a HubApp and request
?DEMOS:HOMEPAGE to get in.
Changing your own projects
Theoretically it should also be possible to take your main
form and derive it from TutParentForm, with a panel named pa
underneath everything. If you are adept at manipulating .DFM
files, you could try this alternate approach.
- Backup. You will want a handy spare copy of the project
- Look at one of the demos, especially the DPR file.
dbexample\instform is good for this purpose.
- Save the demo project under a new name in your real project
directory. Change the two constants for appid and short description.
- Remove any custom units from the DPR file, like htformc.
- If you are using thtwebapp, the appmain.pas file should
stay in your app. If you're using a different app object,
make a copy and switch out the app and session components to
use the ones you need.
- From the DPR file, remove the references to the appAbout unit,
and the line below its CreateForm which sets the label. That's only meant for use in the demos. You do
need to set the AppID in the project file though, even if you
don't use the short description.
- Open the file ht\htfrm\appcustm.pas. Save it under a new
name in your project directory. Decide how much of it you want
- You can probably delete the webapp function (that's
- You may not need the memo field, splitter bar and splitter
- Copy whatever code you had on your original project's
main form onto this custom form. The easiest way to do this
is to clipboard the components, move the code, change the form
name, and then hook up the events.
- If you have events on components
that are on the main form, you can either hook them up directly,
or use code to do it in the DPR. The latter is more reliable,
albeit a bit unusual. There is an example of this in the htauth
- Add in any data modules or other forms that you were using
in your original project. The only form you will have to re-do
is the main form.
- If you have any problems, just check the order of your
CreateForm statements in the DPR, and make them follow the pattern
in the demo project file. The main form should be created first.
- If you move web action components from a data module onto a appcustm.pas-type
form, that's fine ... but... be sure to add a TtpDataModule component
to that form and set its NotifyMenu property to true.
WebHub System Changes
- Hub traffic recording is now optional. See the [Display Stats]
button on the toolbar.
- Registered customers will receive two sets of runners,
those that connect to HubLog and those that don't. The default
is the faster runners which do not log. In a subdirectory
named runlog\ you will find the slightly larger files which
do connect to HubLog.
- The runners give more description error condition messages
when the Hub is down, the HubApp is suspended, a WebApp is down,
or a WebApp is suspended. These messages can now be customized
to complete (longer) messages if you run the new utility called
hubsvc.exe, which runs as a service. Here is the usage:
After installing hubsvc, go to the Control Panel, Services. Set the
WebHub Service to start automatically on system boot, and start
it. This sets up a shared memory area that all the runners
can quickly access, to get the customized messages.
There are some new files installed to ht\htsysmsg and htdocs\htsysmsg
that relate to these features. Under your webroot area, \htsysmsg\,
you will find a file called readme.htm which explains all the options.
If you have a live server going, we highly recommend that you take
advantage of these new features! ... after 0.928 this information
is in webhub.hlp under Hub Panels, Options, Runners.
- TWebVarsDelete -- use this to delete session .var files
after N minutes of surfer inactivity
Unit name changes
webconst.pas is now whconst.pas
Component name changes
There is a TWebSession with a different meaning in Delphi 3. We have
renamed ours to TWHSession and provided an Alias so that TWebSession still
works as long as the scope involves WebHub. TWebSessionVars is now TWHSessionVars.
The main session component in your project will still be named WebSession0.
You do not need to change anything in your existing projects regarding
this issue. This is just FYI.
We're shipping this code right now because we know some people
really need the new hub features and/or want to try with Delphi 3.
- Setting AppID can cause a non-fatal error in the IDE. Just
refresh the app and continue. No problems at run time.
- You may need to run your EXE with the /NoTray parameter for
right now. The EXE should also respect /Minimized.
- The user manual and help file have not been updated yet.
(5/17--posted to /pub/docsnhelp)
- You may have to refresh your webdatasource in the Init
procedure to get the displaysets correct.
- References to edit boxes and memo fields that are on
swapped in panels do not work. This shows up in the fish store,
and in several of the drill-down demos. This effects the FIELD
macro. If you do not use the new style of projects with the
TutPanelForm you probably will not see this bug.
(fixed in 0.936)
- Restorer load and save commented out in lib32\utMainfm.pas.
(fixed in 0.936)
Copyright (c) 1997 HREF Tools Corp. All Rights Reserved.