Lazarus 5.0 release notes
From Free Pascal wiki
Jump to navigationJump to search
Lazarus 5.0 is not yet released. This page is under construction!
Release
LCL Changes
TToolBar
- Added property "Menu: TMainMenu"
- Display the contents of a main menu on the Toolbar
TColorDialog
- Added TColorDialogOptions for non-Windows widgetsets.
- New property AlphaChannel (for widgetsets that supoort this)
TTreeView
- Custom-painting was refactored to provide more flexibility. The so-far ignored painting stages tvsPreErase and tvsPostErase were activated for the OnAdvancedCustomDrawItem event. See TTreeView#Painting_of_the_TreeView
- The HideSelection property has been changed to behave like in Delphi.
- Old behaviour: The property was ignored. An unfocused treeview did show the selection even when HideSelection=true.
- New behaviour: Now the selection of an unfocused tree is really hidden when HideSelection=true.
- A "compatibility" property HideSelectionMode was introduced to switch between old and new behaviour. However, this property was marked as deprecated and will be removed in v5.99.
- Functionality to save/load a TTreeView's Items to/from an xml file (or stream) are added in the newly added TreeStorage unit.
TSpeedButton, TBitBtn
- New property DrawEffectsEnabled to override the theme settings to create visual feedback for mouse-down and mouse-over actions in these buttons when no dedicated icons are available for these states. Allowed values are deeAlways, deeNever, deeSystem, deeApplication (default). deeSystem corresponds to the old behaviour controlled by the theme services. deeApplication means that the application-wide setting in Application.GlyphDrawEffectsEnabled will be used; the available options here are gdeAlways, gdeNever, gdeSystem (default).
IDE Changes
- Find/rename identifier dialog:
- added option Find overrides too to find all overrides of a method and their references.
- now supports ampersands, e.g. &type
- can now rename units and programs
- supports dotted unit names, e.g. rename Tools to My.Utils and vice versa.
- File Save as now updates all references even dotted unitnames.
Source Editor
- Added support for word-wrap
- Additional Syntax highlighting for Pascal
- Nested Brackets
- Params and types in function headers; Names and Types in var/const/type declarations
- Custom words. (Specify Identifiers, keyword or symbols) https://wiki.freepascal.org/IDE_Window:_Editor_Options_HighlightColors#Custom_Words
- Colors for TODO, DONE, NOTE comments (if TodoListLaz package is installed)
Components
SynEdit
- Word-wrap can now be used with Folding. (some config in code required)
TAChart
- New series type, TStateSeries, for displaying the state of machines etc. Also usable for a simple Gantt chart.
- Improved rendering of broken lines: new property EnhancedBrokenLines of new TEnhancedChartPen used by some TLineSeries and other line-oriented series types.
Changes affecting compatibility
LCL incompatibility
LazControls incompatibility
TTreeFilterEdit
- The "Item" property of class TTreeFilterBranch has been changed
- Old: property Items: TStringList
- New: property Items: TStrings
TTreeFilterBranch = class
public
property Items: TStrings ...;
- TStringList exposed properties that - if changed - would have affected the correct operations of TTreeFilterBranch.
- If any code relied on properties not present in TStrings, then it should use a TStringlist of its own, and assign the results, once completely prepared.
- It is not possible to cast the "Items" property as "TStringList(FilterBranch.Items)". The underlying implementation does not use a Stringlist. Such a type-cast will crash.
SynEdit
Highlighters (Fold-Hl / TSynCustomHighlighterRange)
TSynCustomFoldHighlighter used to store the range objects in TSynCustomHighlighterRanges using an AvlTree. It now uses TLazHighlighterRangesDictionary using TDictionary.
As a result any range derived from TSynCustomHighlighterRange must now support returning a hash (see TLazHighlighterRangeForDictionary).
See also: https://wiki.freepascal.org/SynEdit_Highlighter#Objects_as_Ranges_-_Incompatible_change_in_4.99