Difference between revisions of "Lazarus 3.0 release notes"

From Free Pascal wiki
Jump to navigationJump to search
Line 32: Line 32:
  
 
== Changes affecting compatibility ==
 
== Changes affecting compatibility ==
 +
 +
=== Masks unit ===
 +
* The old masks implementation supported sets, but not ranges. The new implementation supports both sets ([abc]) and ranges ([a-c]). As a consequence a '-' inside such a construct is now interpreted as part of the range definition, not as a literal '-'.
 +
* Reason: ranges are a good thing to have by default (the old implementation simply lacked this). We decided it's a small price to pay.
 +
* Remedy: either escape the '-' with EscapeChar (which defaults to '\') or exclude mocRange from the TMaskOpcodes parameter.
  
 
== Other release notes ==
 
== Other release notes ==

Revision as of 20:16, 29 October 2021

Lazarus 2.4.0 is not yet released. This page is under construction!

Statistics:

  1. commits: xxx
  2. log: svn log -r xxxx:xxxx
  3. resolved bug tracker issues: xxx

LazUtils Changes

Masks unit

The masks unit has been completely rewritten.
Reasons:

  • speed: the old Matches() method had O(n^2) or even O(n^3) characteristics.
  • improved control over how the mask is interpreted.

New types (for parameters) and a dedicated TMaskWindows class have been added.
TMask.MatchesWindowsMask and the old TMaskOptions type have been deprecated an will be removed in the next release.

LCL Interfaces Changes

LCL Changes

TTaskDialog

  • Old behaviour Win32: A placeholder icon was used for FooterIcon = tdiNone and MainIcon = tdiNone.
  • New behaviour Win32: No icon is used for FooterIcon = tdiNone and MainIcon = tdiNone.
  • Reason: Removing drawing glitch. The text move over to allow more content and better alignment. See Issue #39172

IDE Changes

IDE Interface Changes

Components

TAChart

  • The TLegendClickTools now is able to detect clicks on series legend items and reports the clicked series in the new OnSeriesClick event.

Changes affecting compatibility

Masks unit

  • The old masks implementation supported sets, but not ranges. The new implementation supports both sets ([abc]) and ranges ([a-c]). As a consequence a '-' inside such a construct is now interpreted as part of the range definition, not as a literal '-'.
  • Reason: ranges are a good thing to have by default (the old implementation simply lacked this). We decided it's a small price to pay.
  • Remedy: either escape the '-' with EscapeChar (which defaults to '\') or exclude mocRange from the TMaskOpcodes parameter.

Other release notes