Difference between revisions of "Lazarus 1.10.0 release notes"

From Free Pascal wiki
Jump to navigationJump to search
(Added note "This page saved for keeping history of page changes only")
 
(39 intermediate revisions by 5 users not shown)
Line 1: Line 1:
'''Lazarus 1.10.0 is not yet released. This page is under construction!'''
+
Version firstly numbered as 1.10 finally was released as 2.0.
  
Statistics:
+
Content of this page was moved to [[Lazarus_2.0.0_release_notes|Lazarus 2.0 Release Notes]]
# commits: xxx
 
# log: svn log -r xxxx:xxxx
 
# resolved bug tracker issues: xxx
 
  
= LCL Interfaces Changes =
+
This page saved for keeping history of page changes only.
  
= LCL Changes =
 
  
* [[TScrollingWinControl]] ([[TForm]], [[TScrollBox]], [[TFrame]])
+
See [[Lazarus_2.0.0_release_notes|Lazarus 2.0 Release Notes]]
** ScreenToClient and ClientToScreen are now calculated without scrollbar offset. Done for Delphi compatibility.
 
  
* Added flags to exclude some graphics format to create smaller applications:
+
== Other release notes ==
** -dDisableLCLGIF
 
** -dDisableLCLJPEG
 
** -dDisableLCLPNM
 
** -dDisableLCLTIFF
 
 
 
* [[TImageList]] can now store multiple resolutions for the same image
 
** every LCL control that supports ImageList has now a new [Images]Width property to decide what custom width at 96 PPI (100% scale) is to be used. Example: TToolBar.Images/ImageWidth, TListView.LargeImages/LargeImagesWidth
 
** set the TCustomImageList.Scaled=True property to let the image list automatically pick up the right resolution for your control.
 
 
 
= IDE Changes =
 
 
 
* Delphi Attributes: Find declaration, parameter hints, $modeswitch prefixedattributes.
 
* The IDE parses the custom compiler options for the fpc switch -FN<namespaces>.
 
* pas2js support:
 
** Added IDE package '''pas2jsdsgn''' to create a browser or nodejs webapplication.
 
** pas2js settings are automatically fetched, same as fpc settings
 
** quickfixes work with pas2js messages
 
 
 
= IDE Interfaces Changes =
 
 
 
= Components =
 
 
 
=== TOpenGLControl ===
 
* New property Options of type set, currently with ocoMacRetinaMode as the only member. If set, ocoMacRetinaMode determines that the OpenGL controls will use retina support (high resolution mode).
 
 
 
=== TAChart ===
 
* The new TExpressionSeries and TExpressionColorMapSeries plot mathematical functions at design-time.
 
* TLineSeries has a new property "ColorEach" which can be used to color the line segments individually.
 
 
 
=== TSpeedButton, TBitBtn ===
 
* New properties Images, ImageIndex and ImageWidth. With them full ImageList support was added.
 
** no need to save the same Glyph in LFM all over the application
 
** automatic high-DPI image handling
 
 
 
= Changes affecting compatibility =
 
 
 
==LazUtils==
 
 
 
==LCL incompatibilities==
 
 
 
=== TCustomComboBox.ReadOnly was deprecated ===
 
* Old behavior: When True, only items from the list are accepted, by direct selection from the list or AutoComplete.
 
* New behavior: it does nothing and will be removed.
 
* Reason: Delphi-compatibility, confusing naming, WS compatibility (different behavior on Win32/Qt/Gtk)
 
* Remedy: Use extended styles for the same feature.
 
 
 
=== Predefined clipboard format pcfDelphiBitmap was removed ===
 
* Old behavior: The enumeration TPredefineClipboardFormat contained an element pcfDelphiBitmap which once had to be introduced due to streaming differences of bitmaps between Delphi and LCL.
 
* New behavior: pcfDelphiBitmap has been removed. (Rare) code relying on exact count and position of the elements of this enumeration will fail.
 
* Reason: No longer needed and causing trouble in clipboard access.
 
* Remedy: None - revisit your code.
 
 
 
=== TEdit.Action visibility lowered to public ===
 
* Old behavior: TEdit.Action was published
 
* New behavior: TEdit.Action is now public
 
* Reason: Delphi compatibility
 
* Remedy: remove from .lfm manually
 
 
 
=== [[TControl]].ScaleFontsPPI, .DoScaleFontPPI parameter change ===
 
 
 
* Old behavior: No AToPPI parameter
 
* New behavior: AToPPI parameter was added
 
* Reason: font scaling problem {{MantisLink|32882}}. This change will be merged to 1.8.1
 
* Remedy: fix parameters
 
 
 
=== MouseEntered deprecated/missing ===
 
 
 
* Old behavior: No warning on using MouseEntered
 
* New behavior: Warning: Symbol "MouseEntered" is deprecated: "use MouseInClient instead"
 
* Reason: Delphi compatibility
 
* Remedy: use property MouseInClient instead
 
 
 
=== TCustomImageList.Add method ===
 
* Old behavior: the image got sliced if too big or extended if too small.
 
* New behavior: the image is scaled to all resolutions in the image list.
 
* Reason: Image List now supports multiple resolutions.
 
* Remedy: use AddSliced (if the image consists of several icons to be added) or AddSlice (if one image from a custom rect has to be added - also rect outside the image is supported).
 
 
 
=== TCustomTreeView.OnChanging event: Node parameter ===
 
* Old behvior: The parameter Node passed to the OnChanging event points to the currently selected node. This is not compatible with Delphi which has the destination node here.
 
* New behavior: The parameter Node passed to the OnChanging event is the node which will be the selected node after the node-changing operation has completed.
 
* Reasons:
 
** The operation can be aborted by setting "AllowChange" to false. For this decision, knowledge of the node going to be selected is helpfull, at least more helpful than knowledge of the node to be left which still can be accessed as TreeView.Selected at this point. The old behavior does not tell the new node.
 
** The new behavior is compatible with Delphi
 
* Remedy: If old OnChanging handlers refere to the parameter Node replace Node by TreeView.Selected.
 
 
 
==Components incompatibilities==
 
 
 
===LazControls: TSpinEditEx no longer inherits from TCustomFloatSpinEditEx===
 
* Old behavior: TSpinEditEx inherited from TFloatSpinEditEx.
 
* New behavior: Both TSpinEditEx and TFloatSpinEditEx now inherit from a common (generic) base class: TSpinEditExBase. As a result testing for "is TCustomFloatSpinEdit" now returns False.
 
* Reason: support for Int64 values in TSpinEdit (Double does not have enough precision to cover the Int64 range). Also makes for cleaner code.
 
* Remedy: test for the appropriate (base) class instead.
 
 
 
=== TAChart: Reticule-related properties deprecated ===
 
* Old behavior: The reticule could be used to display a crosshair cursor in the chart.
 
* New behavior: The reticule will be removed because the crosshair cursor is included in the more versatile charttools.
 
* Reason: Remove duplicate features.
 
* Remedy: Attach a TChartToolset to the chart, add a DatapointCrosshairTool to the toolset and adjust its properties.
 
 
 
=== TAChart events On[After|Before]Draw[Background|BackwallWall] deprecated ===
 
* Old behavior: These events could be used for custom-painting of the chart background or the chart data rectangle background.
 
* New behavior: These events will be removed.
 
* Reason: The events have a parameter Canvas to paint on. TAChart, however, supports additional drawing backends which do not have a canvas.
 
* Remedy: Use the new events On[After|Before]CustomDraw[Background|Backwall] which get the currenty used drawer as a parameter. For drawing use the corresponding drawer methods.
 
 
 
=== TAChart: The TCubicSplineOption <code>csoDrawFewPoints</code> is removed. ===
 
* Old behavior: The CubicSplineSeries required at least 4 data points for drawing. In case of a TCubicSplineSeries with less data points a polygon was drawn as a replacement using the <code>BadDataPen</code> if the option <code>csoDrawFewDataPoints</code> was active; if this option was not set the series was not drawn at all.
 
* New behavior: After fixing the cubic spline interpolation in a local version if NumLib's ipf unit it is possible to draw splines also for less than 4 data points. Old code using the <code>csoDrawFewDatapoints</code> option will not compile any more.
 
* Reason: The old behavior was a workaround for a NumLib bug.
 
* Remedy: Don't use <code>csoDrawFewPoints</code> any more.
 
 
 
==IDE incompatibilities==
 
 
 
= Previous release notes =
 
 
 
*[[Lazarus 1.8.0 release notes]]
 
*[[Lazarus 1.6.0 release notes]]
 
*[[Lazarus 1.4.0 release notes]]
 
*[[Lazarus 1.2.0 release notes]]
 
*[[Lazarus 1.0 release notes]]
 
  
 
{{Navbar Lazarus Release Notes}}
 
{{Navbar Lazarus Release Notes}}

Latest revision as of 15:21, 18 November 2020

Version firstly numbered as 1.10 finally was released as 2.0.

Content of this page was moved to Lazarus 2.0 Release Notes

This page saved for keeping history of page changes only.


See Lazarus 2.0 Release Notes

Other release notes