WebHub Version .925 Release Notes
since 0.912

Delphi 2 and 3 code available as of 8 May 97, 8:30 PST.
This file updated 13 May 1997

UI Changes

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.

Demo Changes

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.

  1. 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 even simpler.
  2. The form that you are going to swap in must have a unique name.
  3. 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.
  4. The caption of the form will become the notebook tab's caption.
  5. If you use a vertical bar in the caption, nesting occurs. Options|A would make a level called Options and nest A below that.
  6. 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)
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.

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

  1. Backup. You will want a handy spare copy of the project for reference.
  2. Look at one of the demos, especially the DPR file. dbexample\instform is good for this purpose.
  3. Save the demo project under a new name in your real project directory. Change the two constants for appid and short description.
  4. Remove any custom units from the DPR file, like htformc.
  5. 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.
  6. 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.
  7. Open the file ht\htfrm\appcustm.pas. Save it under a new name in your project directory. Decide how much of it you want to keep.
  8. 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.
  9. 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.
  10. 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.
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.

WebHub System Changes

New Components

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.

Known bugs

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.
Copyright (c) 1997 HREF Tools Corp. All Rights Reserved.