- Delphi 9 support v2.043
- WebHub v2.043 compiles under Delphi 9, that is, Delphi 2005 for win32 features.
- In case you need pricing on Borland Delphi 2005 Professional upgrade license: $464.70 at Applied Computer (ships same-day), $489.99 at Amazon.
- TwhBrowserInfo component deprecated v2.040
- None of WebHub's units require the TwhBrowserInfo class any longer.
- You will still find a copy of lib\whbroinfo.pas shipping, but we will not be using it any longer.
- TWebDataScan/TWebDataSource fix v2.041
- There were some problems in v2.039-2.040 where the first and last records of the grid
would not always display. Those should now be fixed.
- TWebDataScan OnFinish called on empty result set v2.044
- Previously, if the DataSet were empty, the OnFinish event would never be called. This made it difficult
to end html tables. The OnFinish event is now always called, even if the result set was empty.
- TWebDataScan OnRowStart "ok" flag supported v2.044
- As of v2.044, if you set ok to False in the OnRowStart event, the scan component will continue
looking for additional records until the desired PageHeight is met.
- TWebDataScan Find feature fixed on TADOQuery v2.044
- The "find" feature now works. Its syntax is, in the URL,
?appid:pageid::webdatascan.Find###
,
where ### is the primary key to find. Note that TWebDataSource.KeyFields must be defined and must contain a
single field name.
- App "Handle" deprecated; use AppInstID v2.042
- pWebApp.AppHandle is still available; however pWebApp.AppInstID is the preferred property going forward.
- pWebApp.cgiUseHandle should be changed to pWebApp.cgiUseAppInstID
- pWebApp.cgiHideHandle should be changed to pWebApp.cgiHideAppInstID
- In application-level INI files, if an entry using the new name is found, it is used, else the
old names still work.
- SENDFILE command v2.043
- Fixed problem (in v2.039 to v2.042 only) where, in htWebApp.pas,
the ProcessSendFileCommand routine called SendFile and should have called SendFileIIS.
- To fix this in your copy of htWebApp.pas, use this version of ProcessSendFileCommand:
function ProcessSendFileCommand(const Value: String): Boolean;
var
aFilename, aMimeType, aDelete, S: String;
begin
SplitThree(Value,',',aFilename, aMimeType, aDelete);
aFilename := MoreIfParentild(aFilename);
aMimeType := MoreIfParentild(aMimeType);
S := aFilename + ',' + aMimeType + ',' + aDelete;
WebOutput.SendFileIIS(S);
Result := False;
end;
- OnBadIP, OnBadBrowser refined v2.044
- When using StreamCatcher for web robot detection, the "Bad IP#" and "Bad Browser" situations
are no longer triggered for web robot sessions. Previously, these events would be triggered whenever
a new robot came in, which meant that your custom events needed to have different rules for web robots.
- In addition, the logic in dmWebHub.pas for OnBadBrowser has been fixed so that the
PageID is only changed when RejectSession is actually called. Thus the originally requested
PageID remains valid.
- Prior to these fixes, web robots probably would have received the error "No Page!"
- ExportFilename may include spaces v2.043
- The exportfilename is an attribute of the whpage tag.
- In prior versions, spaces in export filenames were changed to a plus
symbol ('+') when used in JUMPs.
- Now, spaces are changes to percent-20 (hex20), which means that the you
can put a space into an export filename, and the filename will be generated with
a space when written to disk, and any links to that page will use syntax
supported by all browsers.
- Fixed: only initial DOCTYPE is now stripped v2.043
- In v2.039 to v2.042, if you had a DOCTYPE in use anywhere in a WHTEKO file,
it was stripped, thus you could not get one to be used on a dynamic web page nor exported web page.
- Now, only the DOCTYPE at the beginning of the WHTEKO file (prior to the whteko tag) is stripped. This leads to the desired combination of being able to use the WHTEKO DOCTYPE in Dreamweaver for XML validation, while using others ones on your WebHub pages.
- Fixed: DO Page v2.043
- In v2.042 (maybe v2.041?), the DO page gave an error. It works again.
- In v2.043 until 3-Apr-2005, the DO page had to be uppercase. Now it works upper "DO" or lowercase "do".
- TWebHTTP component: Added stringlist for posting unencoded XML data v2.043
- Data put into the Literals list is always encoded prior to posting. This is
undesirable for XML content going to a SOAP server. Use the new stringlist for posting XML data.
- DTD is available for WHTEKO files for "strict" and "transitional" standards 02-Mar-2005
- We recommend that you use one of these DTDs but you do not have to.
- Strict: (see dtd)
- Transitional:
<!DOCTYPE whteko PUBLIC "-//HREF//DTD whteko stage 2.14//Transitional//EN//" "http://webhub.com/dtd/0214/transitional/whteko.dtd
">
(see dtd)
- WebHub-Dreamweaver units renamed v2.042
-
old name | new unit name |
whdwcomm | whdw_Comm |
whdwutil | whdw_Util |
dmDream | whdw_RemotePages |
whDream | whpanel_RemotePages |
- OnDesignPage syntax changed v2.042
- The OnDesignPage syntax, which is used with the WebHub Designer for Dreamweaver,
now allows for setting an error message when access is denied to the design page.
- See whsample_DWSecurity.pas for sample usage.
- Security for WebHub-Dreamweaver made more automatic v2.042
- See whsample_RemotePages.pas
- Use it with app INI entries like this:
[TwebApp.Defaults]
DWSessionNumberRange=1500-1520
DWRemotePageIDs=remotedesign,remotepreview,remoterefresh
DWIPRange=123.456.789.123;123.456.789.*;123.456.789.123-123.456.789.200;123.456.*;123.*
DWIPRange.DEVELOPMENT=192.168.1.*
DWTestingServerURLPrefixMappedTo=d:\temp\Dreamweaver\
- TWebMail sends Date field v2.045
- Microsoft Outlook requires a Date field in emails. TWebMail now automatically generates a Date: field
as part of the header.
- Session Cookie Name now customizable v2.045
- You may set the name of the session cookie via AppDefault['SessionCookieName']
- If not customized, the session cookie name will be 'SESSION'.
- utSpltFm is free v2.045
- WebHub no longer uses the custom splitter panel introduced in utSpltFm.pas. All panels now descend from
TtpFitForm, not from the splitter form.
- The utSpltFm.pas and .dfm files will ship for a few more months in case you are using it in your own projects.
A copy has also been archived online: utSpltFm.pas
- To remove the custom splitter panel from your own forms: identify your splitter panel, remove its MouseDown
event handler. Create a TSplitter component, using the same width, etc. properties as the panel. If present, copy OnEndDrag event handler contents to TSplitter.OnMoved. Delete the custom splitter panel. Remove utSpltFm from any uses clauses. This removal technique may be applied to forms in any version of WebHub, even prior to v2.045.
- TtpStatusBar based on TtpThread source is free v2.042
- Download: tpStatus.pas
- The tpStatus.pas unit will stay part of WebHub, but the TtpStatusBar class will use TThread
instead of TtpThread.
- TtpStatusBar2 renamed to TtpStatusBarDateTime, and it now includes 3 properties that allow setting date, time and status panel index.
- TtpLabel is free v2.042
- Download: tpLabel.pas
- TtpLabel no longer ships as part of WebHub.
- whDemo packages no longer required v2.042
- The tfish.pas file ships as part of the WebHub demos (demos.href.com), and the whDemo*.dpk files which registered its custom
webapp object are no longer required for the demo, nor shipping with WebHub.
- Sample units renamed v2.042
-
old name | new unit name |
whAvg | whsample_Average |
whBroInf | whsample_BrowserInformation |
whChatApp | whsample_ChatApp |
webdbapp | whsample_DBApplicationBase |
whPool | whsample_Pool |
whUsrAgn | whsample_UserAgent |
- TPack unit cleanup v2.042
- No action required on your part... FYI...
- The tpack files have all been edited so that all USES clauses refer to
unit names consistently in terms of upper and lower case.
- The tpack files have IFDEFs to allow for compilation in Delphi 5,
Delphi 6, Delphi 7, Delphi 2005, and Kylix 3. Full Kylix 3 support for tpack will
most likely first occur in v2.043 (April or May 2005).
- This same process will be applied to the WebHub units, "soon."
- Demo units separated from "WebHub Object Pascal Components" v2.042
- The following units are available from the demos.href.com server only now: whdemo_Initialize.pas, whdemo__Extensions.pas,
whdemo_Refresh.pas, whdemo_About.pas, whdemo_ViewSource.pas, whdemo_DWSecurity.pas
- tpRaise moved from uCode to utIpcObj.pas v2.044
- WaitASec procedure is free v2.044
- The uCode.pas unit no longer includes WaitASec. If you need this procedure, see www.href.com/pub/source/uWaitASec.pas.txt
- TimeSince, TimeDifference functions removed from ucInteg.pas v2.044
- Please see time/date utility functions in Delphi 6+.
- SearchBuf function removed from ucSearch.pas v2.044
- See ucString.pas for a version for use in Delphi 5; see Delphi StrUtils.pas for a version for use in Delphi 6+.
- New Project Wizard is back v2.044
- In v2.043 the New Project Wizard was shipping but was building DPR files using logic from two years ago -
due to a key file being out of sync on the installation builder server. That has been resolved.
- ucFile.pas improvements v2.044
- IncrementFileName had not allowed for more than one dot in a filename. Now it does, and considers the
file extension to be after the last dot, not the first dot.
- TWebDataScan and TWebDataGrid buttons: no line breaks v2.045
- In the past, when the grid-buttons were generated by the component, a hard-return (#13#10) was sent after
each part of the syntax. This caused trouble for some HTML effects. For example, it was not possible to make the buttons
appear exactly adjacent to one another. As of v2.045, the hard-returns are only sent before and after the entire
group of buttons.
- MatchFilename function removed from ucFile.pas v2.044
- Here is the code in case you need it:
function MatchFileName(const Filename, FilenameMask:
string):Boolean;
//kindly contributed by Peter Hyde
//match filename and extension to maskname and extentension
var
lpf,rpf,lpm,rpm: string;
begin
if not splitright(AnsiLowerCase(FilenameMask),'.',lpm,rpm) then
rpm :='*'; //if they have no '.', we'll accept ANY extension
splitright(AnsiLowerCase(Filename),'.',lpf,rpf);
if rpf='' then rpf:='.'; // so ABC matches *.*
Result := WildMatch(lpf,lpm) and WildMatch(rpf,rpm);
end;
- Note MatchFileName logic matches: ('abc.' ~ '*.?') ('123.' ~ '123.?') but does
not match: ('abc.' ~ '*.') ('123.' ~ '???.') ('.123' ~ '.???')
- MatchFileName compares filenames case-insensitive
- Fixed issue with # in WebHub command v2.043
- On systems not using StreamCatcher nor Coolness Layer, there was a problem with
# used within a WebHub command. That has been resolved (tested in IE and Firefox).
- MATCH macro: backwards compatible v2.043
- If you would like to use the pre-v2.039 meaning of MATCH,
set the global variable isMatchTechniqueNew (in htWebApp.pas) to FALSE.
- Added 4-Apr-2005
- Added SendBounceToPageR method v2.044
- Bounces to a specific PageID, using the current session number, randomized.
- MatchFilename method removed from ucFile.pas v2.043
- Please use MatchesMask function in Delphi Masks unit.
(