Difference between revisions of "Lazarus 1.10.0 release notes"
From Lazarus wiki
Jump to navigationJump to search (→LCL incompatibilities: TAChart incompatibilities) |
|||
Line 80: | Line 80: | ||
* Reason: Image List now supports multiple resolutions. | * 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). | * 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). | ||
+ | |||
+ | === 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. | ||
==Components incompatibilities== | ==Components incompatibilities== |
Revision as of 11:24, 14 February 2018
Lazarus 1.10.0 is not yet released. This page is under construction!
Statistics:
- commits: xxx
- log: svn log -r xxxx:xxxx
- resolved bug tracker issues: xxx
LCL Interfaces Changes
LCL Changes
- TScrollingWinControl (TForm, TScrollBox, TFrame)
- ScreenToClient and ClientToScreen are now calculated without scrollbar offset. Done for Delphi compatibility.
- Added flags to exclude some graphics format to create smaller applications:
- -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.
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.
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 Issue #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).
- 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.
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.