WebHub Object Pascal Components
- TtpToolButton AutoTextWidth fixed v2.170
- When button has different font than form, AutoTextWidth now sets the width correctly (wide enough for larger fonts).
Previously it calculated the width based on the form's canvas' font.
- Recent TPack units renamed v2.170
- These unit names were shortened to make them compatible with the online help system.
- tpIBOCodeGenerator -> tpIBObjCodeGen
- tpIBOCodeGenerator_Bootstrap -> tpIBObjCodeGen_Bootstrap
- TwhBasicApp.WebRobotSession number initialized v2.170
- When StreamCatcher is being used with the WebHub app, this property has always been initialized to the
web robot session number used by StreamCatcher. However when StreamCatcher was not used, this property had a
random/undefined value. It is now initialized to a low number which would never be assigned to on a production server
running The Hub with a registered license.
- Firebird / IBObjects connection unit includes TIB_Session v2.171
- Updated tpIBOCodeGenerator_Bootstrap such that it includes a global TIB_Session object in the generated unit.
- Improvements in unit tpIBObjCodeGen.pas v2.171
- function Firebird_GetSQL_Fieldlist4Table: It was necessary to select DISTINCT field names.
- Added new function, Firebird_GetSQL_FieldCount4Table, which retrieves the number of fields in a table based on the Firebird meta data.
- Modified TtpCodeGenOnFieldProc to include the count of fields in the current table as a parameter. This enables code generation logic
that must be based on the field count. The Firebird_GenPAS_For_Each_Field_in_1Table method passes this count forward to the TtpCodeGenOnFieldProc procedure.
- Note: the whSchedule demo makes use of these code generation features.
- IBObjects webdata source "First" fix v2.171
- Units whibds.pas and whibods.pas have been fixed such that, at least with IBObjects v5+, they correctly draw the first
record in a DataSet, both when it is initially opened and also when navigating back to the first record.
- Reference IBObjects Release notes,
12/16/2010 Version 4.9 Release 12 Build 233 for BOF fix.
- Unit names cleaned up for IBObjects v2.171
- whibds.pas -> wdbIBObjNSource.pas; to fix this with FuzRegex, search from the top of your project directory tree for
whibds\b and replace with
- whibods.pas -> wdbIBObjOSource.pas
- wbdeIBOSource.pas -> wdbIBObjOSource.pas because it was a duplicate unit
- F2H component no longer raises a dialog when running in a web application v2.171
- When F2H was ported for compilation with FreePascal, dependencies on TPack units were removed. In the process, some of the subtly
was lost. Now there is a DEFINE at the top that prevents the worst of the error messages from leaving a dialog box on the server screen, waiting
for a human keypress.
- Database-driven Select component v2.172
- Removed duplicate/obsolete unit wdbLBox3.pas in favor of wdbLstBx.pas which defines TwhdbListBox and works with any query
that can be pointed to by a TDataSource.
- TwhdbListBox now logs a page error when the DataField or ValueField is nil due to bad fieldnames and/or mismatched SQL.
- ZaphodsMap, NativeXml compile for FireMonkey v2.172
- Confirmed that ZaphodsMap v1.043 compiles and works in FireMonkey applications. This is included in WebHub v2.172.
- Helper functions added to ucCodeSiteInterface v2.172
- New: CSSend, CSSendWarning, CSSendError. These functions do something only if the program is compiled with the -DCodeSite option.
- SOAP improvements v2.172
- Lines starting with // no longer stripped from response. Fix was in webApp.pas, TwhAppBase.BuiltInPage, SendStringImm.
- ucBase64 encoding improved v2.172
- Previously the Code64String function avoided the idea of creating a set of lines of a fixed length. That is still the default
behavior but you can now pass a parameter for the maximum line length, e.g. 76 or 80 for email.
- Encode/decode provided for AnsiString, UnicodeString, TBytes and PByte. Syntax details are in the online help system.
- TwhMail fix v2.173
- The use of the SMTPUsername and SMTPPassword feature was broken in v2.172 only. Fixed in webMail.pas
(must send encoded values from UTF8 source, not from UnicodeString source).
- The whSendMail demo shows how to send an email with an attachment, and this uses the latest new functions in the ucBase64.pas unit.
This demo currently runs at http://more.demos.href.com/htem
- TwhMailForm OnAdvise v2.173
- If compiled with
-DLOGEMAIL, the standard email module will automatically hook up an OnAdvise event handler which
will log status information to either the usual LOG file on disk or to a CodeSite log file. For the latter to work, an additional
define is required, i.e.
-DLOGEMAIL;CodeSite. If you have any problems sending email messages, compile this
way and check the log because it will show the email dialog. Alternatively if you have the GUI enabled, you can click the button the toolbar of the EMail Panel to show the smtp dialog in the memo.
- Function for generating triggers improved v2.174
- This function has been renamed to Firebird_GenSQL_TriggersForUpdateFields. If you pass a blank string for either of the fieldnames
(UpdatedOnAt or UpdateCounter), zero code is generated for that field.
- It should now be possible to use the code-gen routines against a database that does not contain the previously standard
fields named UpdatedBy, UpdatedOnAt nor UpdateCounter.
- Before-Update Triggers are not generated when both UpdatedOnAt and UpdateCounter fieldnames are blank as of v2.175.
- Function Firebird_GenSQL_TriggersForUpdateFields renamed IbAndFb_GenSQL_Triggers in v2.175.
- Unit tpDatabaseCredentials renamed ucDatabaseCredentials in v2.175.
- FuzRegex search-and-replace script here: WebHub2174-to-2175_Delphi_RevB.fzs
- Html > Decode > Count checks for two common syntax mistakes v2.174
- These two mistakes are reviewed by the regex parser: (a) leading whitespace prior to starting a whteko tag, i.e. not having it in column 1
and (b) improper caps in whDroplet, whPage.., whSketch, whDoc.
- New unit: tpEMailCredentials v2.174
- Function ZMLookup_EMail_Credentials, documented
- WebHub Component Setup EXE is now code-signed v2.174
- Previously only the runtime setup was code-signed by HREF Tools Corp. Now the Components Setup is, too. This should help avoid
some annoyance when downloading onto Windows8 Desktop.
- WebHub components make an entry on the Embarcadero splash screen during startup v2.174
- WebHub and ZaphodsMap design time packages register with the splash screen.
- Separated certain functions out of ucShell and into ucShellProcessCntrl v2.174
- If your custom code used any of the following functions, add ucShellProcessCntrl to your uses clause: IsProcessRunning,
- Removed CLR (Dot Net) support from ucShell.
- When compiling ucShell inside FireMonkey, use compiler define
FMACTIVE. Sharing a unit that requires Vcl.Forms versus FMX.Forms
between the Vcl and FireMonkey frameworks is not a technique recommended nor supported by Embarcadero, and, it works when the shared code
is restricted to certain features. This works fine for ucShell.
- New unit: tpDatabaseCredentials.pas v2.174
- Retrieves databasename, username and password for any named Database using cross-platform ZaphodsMap configuration.
- The routines in ucIbAndFbCredentials.pas now use this unit (as of v2.175).
- Search and replace unit names tpFirebirdCredentials to ucIbAndFbCredentials within uses clauses,
if your code has calls to ZMLookup_Firebird_Credentials and are upgrading to v2.175.
- TwhDatabaseIterator.OnDecideHTMLSize event added v2.174
- Hook this event up if you want to override the HTML size= and maxlength= attributes within an InstantForm used for data entry.
- For usage, see the webhubdemos source, revision 966+, whSchedule project.
- Includes ZaphodsMap v1.043 v2.174
- There have been some tiny improvements to ZaphodsMap for Delphi XE3 and FireMonkey. No interface changes at this time.
- ucExcept unit no longer included in TPack v2.175
- HREF Tools published ucExcept.pas with an MIT-style open-source license since 11-Apr-2003; customers may continue using it
by saving the file to their own source tree prior to upgrading to v2.175.
- The EurekaLog product is far superior and we recommend all customers investigate that, or MADExcept, as alternatives.
- Syntax report gives regex hint upon mismatched parentils v2.175
- The Html > Decode > Count report will give you a hint for use in FuzRegex if you have more open-parentils than close-parentils
in a WHTEKO file. For anyone wanting to use this idea with an older version of WebHub,
here is the expression:
\(~[^)]+\( That will find you open-parentils followed by another open-parentil prior to being closed.
- INPUTTEXT: parsing of extra attributes
- Note: To use INPUTTEXT with HTML 5 attributes including the popular placeholder attribute, pass the additional attributes after a vertical-bar separator.
- Here is the regex that you can use in Fuz to see whether you have any of these in your *.whtkeo files:
- In very old versions, you had to scramble things to make the double-quote end up in the right spot. OLD:
(~inputtext|inPetname,15,25," placeholder="Jett~) NEW:
- For an example, see whFormPosting.whteko under webhubdemos.
- NB: IE 9 does not support the placeholder attribute yet. (! ! !) Firefox and Chrome do support it. Visit html5test.com to find out how well your browser supports HTML5, and to check the status for other popular browsers.
- Code-generation of edit-instant-form supports placeholder attribute v2.175
- Compile with v2.175 and use whdemo_DMIBObjCodeGen.pas from webhubdemos project, revision 987+.
- Code-generation of edit-instant-form supports readonly attribute v2.176
- New event: OnBeforeFinish for grid and scan components v2.176
- Fewer compiler hints for XE3 v2.176
- New procedure IbObj_PrepareAllQueriesAndProcs v2.177
- Declaration: procedure IbObj_PrepareAllQueriesAndProcs(InOwner: TComponent; cn: TIB_Connection; tr: TIB_Transaction; sess: TIB_Session);
- Sample usage:
IBObj_PrepareAllQueriesAndProcs(gCNF_Sess, gNF_Conn, gCNF_Tr, gCNF_Sess); // uses ucIBObjPrepare
- Purpose: Assign TIB_Connection, TIB_Transaction, TIB_Session for all IBObjects components nested within a given Owner such as a DataModule or TIB_Session.
- Exception raised when Zaphods Map env var blank v2.177
- For systems where Zaphods Map env var is blank from the point of view of the running WebHub components, an exception will be
raised. Workarounds for fixing this may include: remove UAC from Windows 7; Run (your custom WebHub Application) -As-Administrator.
- Globals\ForceEnvOptionsUpdate supported v2.177
- For XE2 and XE3, Globals\ForceEnvOptionsUpdate set to 1 in registry when paths updated.
- Reference http://docwiki.embarcadero.com/RADStudio/XE2/en/Release_Notes_for_XE2
- WebHub DB package builds with TeeChart Pro v2.178
- WebHub Components Setup fixed to echo your TeeChartPro package name to WebHubDB_Steema.inc automatically.
- Workaround for earlier versions e.g. 2.177:
after running WH Component Setup, edit the
pkg_src\WebHubDB_Steema.inc file. Replace Tee, with Tee916, for XE2.
- Log incoming form data v2.179
- When compiling with codesite, the request query string plus incoming form data is now logged. Source is in htWebApp.pas.
The Hub, WebHubAdmin, ZMAdmin
- SendFileIIS safer v2.170
- The WebHub Components, SendFileIIS method, check that the file exists prior to asking the runner to send it. If
the file does not exist, a page error is generated. Page errors are visible in the application error log file.
- New URLs for monitoring, old-ipc v2.171
- In all examples below, replace 'hubvers' with your HubAppID. For these special pages to function, you must have them defined
as part of your HubApp.
They are included in
HubVersion.whteko as of 25-Jul-2012.
?hubvers:pgRemoteCheckNCT : returns Number of Connected instances as Total
?hubvers:pgRemoteCheckNCA-appid : returns Number of Connected instances for the given AppID
- Example: http://www.href.com/scripts/runisa.dll?hubvers:pgRemoteCheckNCT
- Example: http://www.href.com/scripts/runisa.dll?hubvers:pgRemoteCheckNCA::HREFSite
- New URLs for monitoring, new-ipc v3.171
- NB: this version of the hub does not run a hubapp but can still answer a few tiny questions. Use 'h' as the placeholder for the Hub application identifier. There is no need to use HubVersion.whteko for Hub v3.x.
?h:nct : returns Number of Connected instances as Total
?h:nca-appid : returns Number of Connected instances for the given AppID
- Real uses of nct are on href.com under the lower table, "Versions in Production", column "Modules."
- Delphi XE3 supported v3.174
- WebHub applications can be compiled with Delphi XE3 for win32 and win64 as of v3.174, 6-Sep-2012.
- WebHub Runtime Setup on clean server v3.177
- A problem has been fixed for this situation: install onto clean machine where desired Zaphods Map root folder does not pre-exist. In
that case, the Setup had incorrectly saved the setting named
WebHubRuntimeDataPath as d:\AppsData\WebHub. This was an
inconvenience when trying to use a different folder for WHCentralInfo.xml, WHNetworkInfo.xml, etc.
- Hub and WebHubAdmin binaries compiled with XE3 v3.177
- Runner SendFileIIS safer v2.170
- Runner does not attempt to send files that do not exist, for example, due to old webrobot requests for invalid PDF files.
Previously the runner would make the attempt and then raise an exception within the ISAPI DLL.
- When the filespec is invalid, the runner sends zero response to the http client. Web browsers will eventually timeout and
may see this error in Firefox "The connection to the server was reset while the page was loading." This should help webrobots
decide to stop pursuing such invalid URLs.
- Version response reports Runner ID when disabled v2.170
- When you are not expected to see the version response disabled, the usual problem is (a) there is no runner ID in ZMAdmin
for the runner filespec (case sensitive); or (b) the runner is unable to load the configuration files due to insufficient
Windows permissions. Details for required permissions vary by operating system and whether you are testing locally or over a network.
- Runners compiled with Delphi XE3 (D17) instead of XE2 v2.175
- Hub and WebHubAdmin compiled with Delphi XE3 v2.177
- Where used, EurekaLog is version 7 rather than version 6.
Copyright © 2012 HREF Tools Corp. All Rights Reserved. Contact.