14.0.63 and before

History for these versions was imported from our old web site. Some older links may be broken or refer to content that no longer exists.

14.0.63

  • Bug fix: ISAPI Basic Authentication was not working properly. “Authentication Failed” message was returned before user authentication occurs.
  • Bug fix: Delphi 10.1 Berlin PRO IDE package could fail to validate bundled license
  • Modified: Improved resolution of callback method names. Custom callback (Async) functions can be registered using a DOT, providing fully qualified method names (e.g. “IWForm1.MyCallback”). This modification should not affect existing code.
  • Modified: ServerController.RewriteURL can also be used in Stand Alone applications (makes easy to integrate with Reverse Proxy servers, e.g. Abyss Web Server)
  • This version is binary compatible with 14.0.53+

14.0.62

  • Bug fix: On x64 TIWServerInternalFiles.GetResourceStream() could fail
  • Bug fix: TIWApplication.TerminanteAndRedirect() method would fail if called from within a content handler’s Execute() method
  • Bug fix: Do not trigger ServerController.OnNewSession event when session is terminated during OnBrowserCheck event. Session termination should work as expected.
  • Modified: TIWApplication.Terminate method (the overloaded version without string parameter) will return a 404 code when no content is provided by the user
  • Modified: TIWApplication.Browser internal instance is now destroyed after application forms (avoid issues if WebApplication.Browser is referenced during form destruction)
  • Small performance improvements
  • This version is binary compatible with 14.0.53+

14.0.61

  • Bug fix: In some circumstances (mainly using a proxy/load balancer server) link files could be rendered with wrong URL (AddLinkFile)
  • Bug fix: ASPX Library could fail with 3rd party controls (CG Tools)
  • Improved Delphi IDE Edition detection. This fixes many installation problems, mainly on Delphi 10 Seattle and 10.1 Berlin
  • Bug fix: New C++ ISAPI created using IntraWeb Application Wizard would contain wrong #include file list among other issues.
  • This version is binary compatible with 14.0.53+

14.0.60

  • Bug fix: Setting Enabled and Visible properties of TIWComboBox control and descendants during async evens would fail
  • Bug fix: Changing the Items list of a TIWComboBox control and descendants could make ItemIndex property invalid
  • This version is binary compatible with 14.0.53+

14.0.59

  • Bug fix: IWDBComboBox: Clearing the underlying DataField during async event wouldn’t update the control text
  • Bug fix: IWComboBox and descendant classes would fail to render in Async if NoSelectionText contained some XML special char (<, &, >, ” and ‘)
  • Bug fix: TIWSlimReaderWriter could fail when compiled as x64
  • Bug fix: EAbort should be silent when raised during form execution
  • Modified: IWJclDebug now ignores all EIdSilentException (e.g. EIdConnClosedGracefully) and EAbort exceptions
  • This version is binary compatible with 14.0.53+

14.0.58

  • Setup fix: IntraWeb setup program failed to update some files.
  • This version is binary compatible with 14.0.53+

14.0.57

  • Bug fix: ISAPI ThreadPool should disable itself under Apache (or other web server which does not support the asynchronous I/O used by the thread pool, like Abyss)
  • Bug fix: ISAPI application could fail during start up when compiled as x64 (didn’t affect x86)
  • Bug fix: Redirection to HTTPS was not working properly when using content handlers
  • Bug fix: Content Handlers discovery could fail when query string was not empty
  • Bug fix: Content handlers execution when starting a new session could fail
  • Modified: MappedURL should not be cleared unless when changing active form
  • Improvements in TIWTemplateProcessorHTML performance
  • Other small changes and fixes
  • This version is binary compatible with 14.0.53+

14.0.56

  • This version is binary compatible with 14.0.53+. It fixes the following bug(s):
  • Bug fix: Unicode chars in content fields were not handled correctly (ISAPI only).
  • Bug fix: Content fields bigger than 64Kb would be truncated  (ISAPI only).
  • Bug fix: IWComboBox/IWListBox would present wrong selected items after populating the list in Async event handlers.
  • Small improvements in ISAPI code. Less AnsiString <-> String conversions.

14.0.55

  • This version is binary compatible with 14.0.53 and 14.0.54. It fixes the following bug(s):
  • Bug fix: Content-type header field was missing when serving really small files which were sent inline (not using temp files). Some browsers won’t handle the file correctly without the Content-type header field. This issue affects ISAPI projects only.

14.0.54

  • This version is binary compatible with 14.0.53. It fixes the following bug(s):
  • Bug fix: Under specific circumstances, AJAX call could fail to execute. It was confirmed in XE6 only, but it might affect all other IDEs.

14.0.53

  • New: Delphi 10.1 Berlin support, both Delphi and C++ Builder, x32 and x64. Before installing it in Delphi 10.1 Berlin, please remove the bundled version, following these instructions (download an run the updated IW Bundled Removal Tool, which supports Delphi 10.1 Berlin).
  • New: Support for OpenSSL version 1.0.2g and later in stand alone servers (updated Indy Open SSL units)
  • New property ServerController.PostRedirectGet, which implements a Post/Redirect/Get pattern in post requests
  • New: properties FriendlyName, CloseButtonVisible and CloseOnEscKey added to IWModalWindow.
  • New: ISAPI implementation was rewritten (new unit IW.ISAPI.Extension.pas). The new implementation is much faster and is not based on WebBroker. New TIWISAPIThreadPool class (new unit IW.Isapi.ThreadPool.pas) which replaces the Delphi built-in TISAPIThreadPool. Read more about it here.
  • New constant RSAuthFailedMessage which allows you to modify the “Authentication failed” default message string.
  • New IWForm events OnRefreshForm and OnGenerateForm. OnRefreshForm event is triggered in a response to a GET request, when the form is rendered again due to a browse refresh, back button click or redirection (e.g. 302 or 307 responses)
  • Bug fix: When IWModalWindow was visible, focusable elements beneath overlay div could be focused using tab key.
  • Modified: ESC key now closes IWModalWindow (the same as close button “x” at the top right was pressed)
  • Modified: IWModalWindow resets tabIndex property of all focusable elements (keeping relative order), making navigation using tab key more user friendly
  • Bug fix: IWModalWindow.RenderStyle property now works correctly.
  • Bug fix: IWLabel: NoWrap works as expected when StyleRenderOptions.RenderSize = False (AutoSize = True). Text is now truncated, which is the expected behavior. IWLabel does not render non-standard tag anymore.
  • Bug fix: Setting IWComboBox and IWListBox ItemIndex property at runtime during an Async event might not work as expected
  • Bug fix: a bug introduced in IW 14.0.51 broke IWBackIntercept normal behaviour
  • Modified: TFrame alignment works as expected when created at runtime.
  • Bug fix: ResetSessionId wasn’t working as expected when AllowMultiSessionPerUser was true.
  • Bug fix: Correct TrackID handling when used in Ajax requests, i.e., an Ajax request increments TrackID as it should
  • Modified: Session log updated to support reset session ID event. Stream version updated. Log files created with this version need newest log file viewer application.
  • Extended: LogSessionEvent now correctly logs Callback (AJAX) request parameters. Requires new version of Log viewer application.
  • Bug fix: Included Indy fix for HTTP 411 error on GET request from iOS 8 Safari
  • TIWResyncInfo record used in OnBackButton event now also contains the session object (Session: TIWApplication). Few issues regarding OnBackButton were fixed.
  • Many other small fixes and improvements.

14.0.52

  • Bug fix: In TIWFileUploader, when selecting multiple files, event OnAsyncSelectFile parameters only contain the first file name. This issue affects all browses, except Internet Explorer.
  • Bug fix: In MS Edge, gradients (TIWGradButton) didn’t show correctly
  • Bug fix: Under very rare circumstances a exception ‘aBytes is not large enough to hold stream’ could be raised when committing the reply
  • Bug fix: Do not trigger IWForm.OnShow event handler when destroying the Session
  • This version is binary compatible with version 14.0.48 and later

14.0.51

  • Bug fix: Fixes gSessions.LockList/UnLockList error when used from another thread.
  • Bug fix: Fixes “Bad Request” errors in Internet Explorer 11 and MS Edge browsers when handling OnAsyncKeyDown/Up events and keys like Shift or Backspace were pressed.
  • Improved: Serving static files (css, javascript, images, etc.) from ISAPI.DLL
  • Small fixes in IntraWeb setup program
  • New version of optional CrossTalk package
  • This version is binary compatible with version 14.0.48, 14.0.49 and 14.0.50, so you don’t need to update other dependant packages (CG Dev Tools, TMS, IW Bootstrap)

14.0.50

  • Bug fix: an access violation could occur when rendering template-based forms where controls are referenced using dotted notation, like
  • Due to refactorings in the template handling logic, this version performs significantly better than versions 14.0.47 and prior, when processing template-based forms.
  • Modified: IntraWeb setup program now installs all design time packages (one dclIntraWeb_14_xx.bpl file for each Delphi IDE) under the same folder named “bin” under IntraWeb’s main installation folder. This makes things easier and more manageable. Also, no files are installed under Delphi’s own bin folder.
  • This version is binary compatible with version 14.0.48 and 14.0.49, so you don’t need to update other dependant packages (CG Dev Tools, TMS, IW Bootstrap)

14.0.49

  • Bug fix: Unicode chars in file name could cause IWFileUploader to raise exception “No mapping for the Unicode character exists in the target multi-byte code page” when OnAsync events are assigned. This error only occurs in Internet Explorer 10 and 11
  • Bug fix: When calling gSessions.UnlockList() method, an exception with message “The session does not hold a lock in session list” could be raised.
  • This version is binary compatible with version 14.0.48, so you don’t need to update other dependant packages (CG Dev Tools, TMS, IW Bootstrap)

14.0.48

  • Improved TIWContainerContext. Drastically improved page rendering speeds, specially when rendering a page with several controls (hundreds or more). Reduced memory usage. This affects all controls descending from TIWContainer, like IWRegions and several CG Dev Tools controls
  • TIWCustomListbox and TIWCustomComboBox refactored. Async response does not recreate items if list hasn’t changed. This drastically improves performance when items list contains a huge number of items.
  • Workaround for Delphi 2009 TFileStream bug: TTempFileStream now descends from THandleStream and correctly respects share mode
  • Modified: User configurable PacketBufferSize, via THttpPacket.PacketBufferSize class property.
  • Bug fix: New version of ASPX redistributable binaries, fixes server error 500 when refresing a page
  • Bug fix: Under certain circumstances a browser without cookie support would cause an infinite request loop
  • Bug fix: Fixed cookie support exception
  • Bug fix: SRW Lock improved detection on Windows Vista
  • Bug fix: IntraWeb’s JavaScript libraries: FindElem() replaced by document.getElementById() calls in order to avoid problems with CG Dev Tools libs
  • Bug fix: revert IWCheckBox state in case confirmation question is used and user cancels it
  • Bug fix: Under very rares circumstances a memory leak could occur when destroying the IWApplication instance
  • Modified: In TIWMenu, HideComboBoxes is not used anymore. This only makes sense in IE 6 and below
  • Refactored TIWSessions (gSessions instance). TIWSessions.LockList now has a parameter named AWriteAccess (boolean). When true, the list will be locked with a write lock, otherwise a shared (read) lock will be used. Only use the write lock if absolutely required, once it has influence over IWApplication locking mechanism. TIWSessions.UnlockList now has a parameter named AList (type TList). The list obtained as a result of LockList() method should always be used as a parameter.
  • Lots of other small improvements.

14.0.47

  • Bug fix: Registration of IntraWeb in Delphi 10 Seattle could fail. This problem could only be reproduced in Windows 10 machines, but may affect other versions of Windows as well.
  • Bug fix: IWForm’s OnDefaultAction event does not trigger
  • Bug fix: In Firefox and Chrome an Ajax execution could fail when the page has CSS from another domain
  • Bug fix: ExplicitStart() correctly terminates existing session
  • Bug fix: IWForm.JavaScriptOnce was not working properly.
  • Stability of design time package was greatly improved. Possible access violations or invalid pointer operation exceptions were eliminated.
  • Various improvements on session locking mechanism. Many exlusive locks were replaced by shared locks, meaning much better performance under heavy usage.
  • New in TIWFileUploader: New public methods: StartUpload(), SelectFile(), ClearList(). These methods can only be used in an Async request.
  • Modified: TSessionTimeoutThread only clear expired sessions list if ServerController.RestartExpiredSession = True. This means that there is no performance penalty when Session timeout thread executes and your application is not using the RestartExpiredSession feature.
  • Modified TIWCheckBox: Default cursor and removed inline style setting cursor
  • Modified TIWBrowser class: refactorings for improved detection of bots, search engines and other browsers
  • Modified: TIWContainer.RenderComponents() now use display CSS property when control has StyleRenderOptions.UseDisplay = True. This way, “display: none” is used instead of “visibility: hidden” when an invisible control is rendered, i.e. when its parent container has RenderInvisibleControls = True. When StyleRenderOptions.UseDisplay = False (the default value), the old behavior is preserved, i.e. “visibility: hidden” is used.
  • Modified: TIWControl.RenderAsyncCommonProperties now use display CSS property when control has StyleRenderOptions.UseDisplay = True
  • Modified: DesignMode property removed from TIWApplication instance. Use IsDesignMode instead.
  • Lots of other small improvements and fixes.

14.0.46

  • New Delphi/RAD Studio 10 Seattle support (including C++ x86/x64)
  • New MIME types compressed by default when using SA server (json, xml, xhtml)
  • New TIWApplication.ResetApplicationID() method, allows you to change the session ID after a user logon (experimental)
  • New ServerController.ProxyPortRedirection property. This property allows you to control the port used by IntraWeb server when creating responses that will redirect the browser to another address within the same domain/application. This should be used when the application is behind a proxy (or load balancer, etc.) that redirects received requests to your application, using another HTTP or HTTPS port.
  • Bug fix: an access violation could occur withing exception logger
  • Bug fix: issue with new notification dialogs when AllowMultipleSessionsPerUser = True
  • Bug fix: TWImageFile.ScriptEvents[‘onClick’] will trigger IW application’s OnClick even even returning false
  • Bug fix: Under very rare circumstances, FindSubmitElement could raise an exception “Cannot find submit component”
  • Massive code cleaning/formatting. Most unused units were removed from uses clause, from all units. This means shorter build times when using IW sources
  • Few other small bug fixes and improvements

14.0.45

  • New: WebApplication.ShowMessage(), ShowMessageEx(), ShowConfirm(), ShowPrompt(), ShowNotification() methods. These methods show new cross-browser, dynamic JavaScript dialogs. New demos are being prepared.
  • New property UseAjaxNotify in TIWServerControllerBase class. When True (default), WebApplication.ShowMessage will use the new JavaScript based dialogs instead of alert() when using WebApplication.ShowMessage(). Set it to false to restore the old behavior.
  • Bug fix: Fixes a JavaScript error in IWRadioButtons and IWCheckBoxes when using IE8 and 7
  • BugFix: Possible error during AJAX response processing in Firefox and Chrome if the document has style sheets hosted in other domain
  • Bug fix: ExecuteWebEditor() restored. This allows users to edit HTML pages using IntraWeb built-in HTML editor, using /$/iwedit command.
  • Improved error logging. Added Request information
  • New P3P property and DefaultP3P class var in THttpReply class. Although P3P is not developed/supported anymore, Internet Explorer browsers still need P3P header in order to work property under some circumstances. Read more about it here.
  • Microsoft Edge browser support

14.0.44

  • Bug fix: Possible AV when destroying an IWFrame containing a IWTemplateProcessorHTML component
  • Bug fix: TIWDBMemo Async events cause a line feed to be inserted
  • IWApplication.NewWindow() replaces path delimiters (\) with URL delimiters (/) to avoid runtime errors
  • Improved browser detection, specially older Chrome, newer Samsung mobile devices based on Android and Safari Mobile
  • Maximize icon on SA server main window
  • This version is binary compatible with previous versions 14.0.41/.42/.43
  • This version is compatible ith RAD Studio/Delphi XE8 and XE8 update 1

14.0.43

  • Bug fix: Fixed incompatibilities with Internet Explorer 7, 8 and 9 when updating hyphenated style properties (e.g. background-color, font-size, etc.)
  • Bug fix: if IWEdit.SubmitOnAsync is false, OnSubmit event does not fire
  • This version is binary compatible with previous versions 14.0.41 and 14.0.42
  • This version is compatible ith RAD Studio/Delphi XE8 and XE8 update 1

14.0.42

  • Bug fix: Under some circumstances IWStringReplace() could fail.
  • Installer fix: CrossTalk for RAD Studio XE8 install could fail
  • This version is binary compatible with previous verson 14.0.41

14.0.41

  • New: C++ Builder x64 support from XE3 to XE8
  • Bug fix: OnSubmit event didn’t fire
  • Bug fix: Under some circumstances (e.g. an IWButton with assigned OnClick event, and confirmation message), the event OnClick could be triggered twice after when the page was rendered a second time.
  • Modified: Few IW units using generics were refactored to remove generics dependency. Some 3rd party code had problems with some compilers in units using generics code.

14.0.40

  • Delphi / RAD Studio XE8 support
  • Bug fix: A JavaScript error caused IW applications to fail under IE7
  • Bug fix: Change that cause fail of JavaScript when using templates was rolled back
  • Bug fix: When using start parameters, IW_AjaxID parameter was added to the existing parameter list using ‘?’ as a separator, causing 2 question marks to appear in the url
  • Bug fix: Under very rare circumstances, the destruction of a IWForm/DataModule could cause an Access violation
  • Modified: If IWRegion.StyleRenderOptions.RenderBorder = False, no border style attribute is rendered. This is the correct, expected behaviour of this property. As a side effect, when a IWRegion is rendered with StyleRenderOptions.RenderBorder = True, setting it to false during an Async (AJAX) call won’t cause the border to be invisible again. In this case, the IWRegion.BorderOptions property should be used instead.

14.0.39

  • Fixed: Interface change broke TMS IntraWeb pack build.

14.0.38

  • New: QueryStatus request feature. New public property IWApplication.Status.
  • New component: TIWMonitor
  • New component: TIWModalWindow
  • New IWBaseForm.OnShow() event: this event is triggered every time that the form becomes the active form. This may happen when its Show() method is called, or when the current active form is destroyed (in this case, the last form in the form stack becomes visible).
  • New property RenderjQuery in TIWServerController.JavaScriptOptions. When FALSE, IntraWeb will not generate code (