- TWebOutput.HttpColon v2.014
The default for this property is, and has been, False. A change was made in the shared
standard unit, dmWebHub.dfm, such that the property value stays false. It had been overridden
to "True" which is incompatible with the latest versions of Microsoft IE. For
details on the incompatibilities, search support.href.com for "httpcolon" and read messages
starting in Sept 2002.
- TWebHttp supports file uploading v2.015
The TWebHttp component now supports file uploading through the "POST" protocol
so that you can transmit files from your Delphi applications to any web application.
TWebHttp remains optimized for posts that do not include files.
It supports
- multiple non-mixed uploads, regardless whether they are binary or text
So 4 .bmp *or* 2 .txt
Strangely enough it does support uploading a .txt and a .abc (where abc is a non binary file type)
It does *not* support
- mixed file uploads, the upload of x binary files and y textfiles (where x is greater than 0 and y is greater than 0)
So a .bmp *and* a .txt in the same stream.
The workaround is to execute tWebHttp twice, once with with the binary file, then with all the text files.
Thanks to Ronan van Riet for the enhancement.
- TWebHttp.Connect syntax corrected v2.015
Related: In TWebHTTP.Connect, changed two spaces to one space for prefix before non-blank protocol, e.g. before HTTP/1.1 based on reference http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.2
- As-Service code updated v2.016
The SvcApp.pas unit has been fixed so that the termination code only executes once.
This fixes a series of access violations upon stopping a service which uses TClientDataSet.
The as-service units are included in the "plus pack" of source code.
- Registry use is ReadOnly where possible v2.014
Added WebHubGetRegistryStringReadOnly to whRegisR.pas and changed webbase.pas,
webinfou.pas and the hub registration form to use that wherever possible.
This means that applications compiled with
WebHub components will not attempt to write to the registry.
- # in WebHub Command v2.014
Bug fix in whBroInf.pas re # in WebHub command as used by Netscape browsers
other than version 3.x.
- Added control over redirection ("bouncing") v2.014
The following methods are new on the TWebOutput component:
SendRedirection(TargetURL: String;
const StatusCode: ShortString; const Reason: ShortString;
const Body: String);
SendRedirection301(const TargetURL: String);
SendRedirection302(const TargetURL: String);
SendRedirection303(const TargetURL: String);
SendRedirection307(const TargetURL: String);
The SendBounceTo method now calls SendRedirection302.
The BOUNCE macro nows calls SendRedirection302.
TargetURL is expanded within SendRedirection (v2.015).
- cMaxMacroDepth changed from 20 to 40 v2.015
In websend.pas, the constant which indicates endless recursion has been extended
from 20 levels to 40 to allow for reported real-world use of PARAMS macro.
Set cMaxAborts to 40 as well. v2.016
- TWebServer.cgiAddress v2.014
In webserv unit: Changed GetCgiAddress so that if the web server software includes
the port within the server name (as Sambar does at least in some cases), the WebHub
cgiAddress property will not include the port twice (e.g. localhost:8000:8000) as that
definitely does not work.
- TtpSharedLongInt and WebHub Shared Panel fixed v2.015
TtpSharedLongint and the standard whShared.pas panel are now working as designed and
enable a developer to trigger refresh across all instances. Many small changes were required
and they are documented here for reference by developers using TEvent or TtpSharedLongint explicitly.
- lib\whShared.pas
- simplified the logic, primarily by removing the idea that the trigger
would be embedded within the event that was being triggered (i.e. in the
past, the pWebApp.Refresh code triggered the setting of command 3 which
in turn triggered pWebApp.Refresh).
- lib\whMain.pas
- Removed references to code in whShared
- lib\dmWebHub.pas
- Removed references to code in whShared
- lib\tpsharei.pas
- in TtpSleeperThread.Create, set ManualReset to True for fEvent
- added fLocalValue to implement TtpSharedLongInt.IgnoreOwnChanges; note
that it defaults to MaxLongInt and that MaxLongInt is the only value which
you should never set GlobalValue to.
- renamed thread's private copy of "ignoreownchanges" to fIgnoreOwnThreadChanges
to differentiate it from TtpSharedLongInt's copy but did not rename published
property to avoid changing the interface
- fIgnore is no longer used in TtpSleeperThread.Signal or TtpSleeperThread.Execute or elsewhere
- TtpSleeperThread.IgnoreOwnChanges is no longer used in TtpSleeperThread.Signal or elsewhere
- Added checks for nil and recursion in TtpSharedLongint.CloseSharedMemory
- Removed 1998 comments about CreateNamed
- Made TtpSharedLongint.SetValue set the value even if it is the same as the
existing value
- lib\utipcobj.pas
- Removed 1998 comments about CreateNamed
- Changed TEvent.CreateHandle to try an 'open' before a 'create'
- Removed IFNDEF VER130 and assignment of SEMAPHORE_ALL_ACCESS
- Added TWebOutput.SendWideString method v2.016
- Support for Chinese, etc. in INPUT macros v2.016
In htwebapp.pas, all calls to AdjustMacros, which in turn calls EncodeHTML, now
use constant hcNone instead of hcNames. This enables a site visitor to paste non-English characters (including Chinese and Japanese) into fields on forms created by the W-HTML INPUT macros.
- Added AskQuestionYesNo function v2.014
(in ucdlgs.pas unit)
- WebSockt unit removed from WebHub v2.014
The unit named "WebSockt" has been removed from WebHub. It is now in the public
domain, posted at http://www.href.com/pub/source/websockt.pas. It is for use only
on 16-bit Windows systems.
- Bug fix in ThtTagList.SetAsTag v2.014
...for cases where variable "i" became greater than length of string "a"
- Improved session hiding for use with StreamCatcher v2.014
Changed TWebSessionIDApp.GetRandomSession to hide both session id and random number if IsRobotRequest is true.
Changed TWebSessionIDApp.aSession to hide the session id if IsRobotRequest is true.
Modified TWebSessionApp.RejectSession so that the target, "bounce-to" URL, does not contain a session number (which it did, as it had resulted from Jump[]).
Renamed all uses of 'Robot' to 'WebRobot' for consistency.
Added pWebApp.WebRobotSession property which equals the reserved session number for web robots,
which may be used with an ISAPI filter such as StreamCatcher.
Changed ini file key for the web robot session id from "RobotSession" to "WebRobotSession"
- Bug fix re usage of ServerIDs v2.014
Fixed bug where the AppHandle would appear in the links when ServerIDs were used.
- Added ElapsedMilliSecondsSince and ElapsedMilliSecondsBetween functions v2.014
... in ucwinapi.pas.
- Fixed TwhBrowserInfo.GetAnchorInQueryString re Netscape 6 v2.014
...because it had been returning False for all Netscape browsers, not just version 3, and that made the # portion of a command show up prior to the ? in the URL, which doesn't work in, for example, Netscape 6.
- PageID treated case insensitively v2.014
Modified TWebBasicApp.SetPageID so that PageID is only set when different,
from a case *in*sensitive point of view. (It had been using case sensitive logic.)
- Better support for WebHub on ports other than 80 v2.014
Changed GetCgiAddress so that if the web server software includes the port within the server name
(as Sambar does at least in some cases), the WebHub cgiAddress property will not include
the port twice (e.g. localhost:8000:8000) as that definitely does not work!
- Better support for host headers v2.015
Changed logic so that host header is added only when protocol is HTTP/1.1.
Also changed TWebTelnet.Connect method to advise the port number in addition to the WebSockHost.Address.
- UseHTTPHeader flag v2.015
Added support for a WebDefault named "UseHTTPHeader" which sets
the value of TWebOutput.UseHTTPHeader.
- WebDefaults[cHttpColon] v2.015
New feature: TWebOutput.HttpColon loaded from WebDefaults[cHttpColon] when TWebInfo refreshes.
- brwsrcap.ini updated v2.014
Updated to latest version available from original source, http://www.cyscape.com, which is dated February 2000.
- TWebInfo use of INI files improved v2.014
Patched TWebBasicInfo.AssertInifile so that it would work even if incoming "filename" was really a directory.
- TWebApp.Pages list remains sorted v2.016
The TWebStoreList class underlying the TWebApp.Pages list was fixed to correctly sort
Pages containing an underscore character. This problem led to a situation when a PageID would
not be found even though it was in the list. This could manifest itself as PageID being blank
after assignment, and in other ways. Thanks to Allen Farenhem for providing the necessary
test data to track this down.
- gifimage.pas renamed to htGifImg.pas v2.015
htGifImg.pas is free v2.016
The gifimage unit is not used in any WebHub packages and has been available on href.com/pub/source
since Mar 1998. It has been renamed from gifimage.pas to htgifimg.pas to avoid a naming
conflict with gifimage.pas in the Delphi JEDI source. As of v2.016, the unit will no longer ship with WebHub.
If you need this unit, please download source from www.href.com/pub/source/.
- ucdlluse.pas is now free v2.016
This unit is for using DLLs in Delphi 1 and is posted at www.href.com/pub/source.
- webtbl.pas and wdbalpha.pas are now free v2.016
These units, which defined web actions TWebTable and TWebDBAlphabet, have been removed from
the WebHub VCL and are posted as free source files at www.href.com/pub/WebAct/DB/.
- tPack TEvent renamed to TtpEvent v2.017
In utipcobj.pas, TEvent renamed to TtpEvent to distinguish from Borland Delphi TEvent class.
- tPack TCriticalSection renamed to TtpCriticalSection v2.017
In utipcobj.pas, TCriticalSectionrenamed to TtpCriticalSection to distinguish from Borland Delphi TCriticalSection class.
- Fixed Delphi compiler warnings v2.017
Fixed the following units to clear compiler warnings: utThread, TxtGrid, tpShell, ucFile, UserWin,
tpList, tpMemo, tpSysPop, htmlCore, websesnf, webcore, webpick, webinfou, wpaFiles, Ilgifbmp,
weboutln, weblistm, whvardel.
- additional units are free v2.017
tpKiosk.pas, usernetw.pas, utwcrypt.pas, bitbox.pas, bitboxdb.pas, filtprop.pas, ucPChar.pas,
okCore.pas, working.pas, userbde.pas, ucPrint.pas, systools.pas --
these units are posted as free source at www.href.com/pub/source.
- PageIDs and ChunkIDs now case sensitive when loaded from DB v2.017
If you are using ThtDBWebApp, and you are loading content from a database, please note that
the PageID and ChunkID values are no longer forced to uppercase. This means that you may
change the content of your database, to allow upper and lower case letters, if you want.
- Added InitCoreWebHubDataModule v2.017
Both dmWHDBAp.pas and dmWHApp now define InitCoreWebHubDataModule (and both now "uses whMain").
This makes it one step easier to have a simple DPR for a WebHub project, regardless of your choice
of application object, and the technique is being applied to all the demos.
- TWebListGrid file location, definition extended v2.017
If the files locations are not absolute, then they are considered relative to the location
of the application-level INI file.
- TtpSharedLongInt patch for D6/D7 v2.017
Fixed problem in tpsharei.pas causing the symptom where, on exit, a WebHub application
using the whShared.pas panel would give "EOS Error 6, Invalid Handle."
- TtpCollection.Owner renamed to OwnerComponent v2.017
The "Owner" property was renamed to OwnerComponent so that the normal Delphi Owner property
would still be available and the custom property would be easily differentiated.
- Summary of free units v2.014 to v2.017
- bitbox
- bitboxdb
- filtprop
- htGifImg
- okCore
- systools
- tpKiosk
- ucDlluse
- ucPChar
- ucPrint
- userbde
- usernetw
- utwcrypt
- wdbalpha
- webtbl
- working