15.5.0 Version History

What’s new

  • RAD Studio 12 (Delphi and C++Builder) support
  • Major refactoring targeting compatibility with FreePascal compiler. 100% of IntraWeb runtime code is now compatible with FreePascal/Lazarus and we are getting close to the first release supporting Lazarus
  • TSentinelThread introduced in ServerController. This thread goal is to watch the internal workings of the IntraWeb server, more specifically the session timeout thread activity. If, for some reason, the session timout becomes irresponsive, the sentinel thread will restart it.
  • New TAnimatedButton: easily use Font Awesome animations in button icons (demo will follow). Animations it an effective mean to provide visual feedback to users, offering insight into the progress of lengthy tasks
  • Enhanced TIWDataModulePool: New properties introduced, AutoShrink and CleanUpTimeoutMinutes. AutoShrink, when set, will bring the pool back to initial size, if possible, after the connection is idle for CleanUpTimeoutMinutes.
  • Enhanced IWSelect, IWComboBox, IWListBox components and descendants:
    • In IWSelect and IWListBox, when MultiSelect is set, SelectedValue and SelectedText will accept multiple values, in a comma separated string
    • New IWSelect event OnLookupListItemNeeded. Used to fill the Items list when MultiSelect and ServerSide are both set
    • In IWSelect, when ServerSide is set, default values can be set using one of the properties: ItemIndex (MultiSelect = False) or SelectedValue/SelectedText (MultiSelect = True)
  • More performance data collected and sent to IWServerMonitor: LastTimeoutThreadRun (last time the session timeout cleanup thread ran), LastRemovedSessionCount (how many sessions were released then)

Modified

  • TIWEdit when DataType = date or time will use both ISO8601 date/time format (preferentially) or the current FormatSettings date/time format
  • Improved form destruction code in TIWApplication: The session will explicitly destroy all owned forms in a controlled and safe way. Even if some misbehaving user code causes an exception during a form creation, other forms/datamodules still will be destroyed
  • Faster Indy internal thread code
  • jQGrid Font Awesome reference update do latest 6.4.2 version
  • Callback infrastructure was refactored due to incompatibilities with FreePascal/Lazarus. A minor method signature change was necessary in 2 of the callback methods. The aHandled parameter in TIWCallbackProc3 and TIWCallbackProc4 became “var” parameters instead of “out”. In case your code uses one of them it is possible that a small adjustment will be necessary. In that case just change the aHandled parameter from out to var and the application will compile and work as before:

TIWCallbackProc3 = reference to procedure (aParams: TStrings; out aResult: string; var aHandled: Boolean);

TIWCallbackProc4 = reference to procedure (aParams: TStrings; out aResult, aContentType: string; var aHandled: Boolean);

  • Several minor bug fixes and enhancements

Bug fixes

  • Exception logger should show the client IP address correctly when using a reverse proxy/firewall
  • When recreating multiple controls parented to the same control in an async event, the final rendering order could be wrong
  • RGBAString in BackgroundRGBA property (in ServerController) when System decimal separator is not a dot ‘.’
  • Resolved error with message “Operation not allowed on sorted list” in ISAPI applications when explicitly starting sessions using runtime parameters