Difference between revisions of "Lazarus 4.0 release notes"

From Lazarus wiki
Jump to navigationJump to search
Line 43: Line 43:
 
** Reason: it makes Execute honour the tfRelativeToWindow flag.
 
** Reason: it makes Execute honour the tfRelativeToWindow flag.
 
** Remedy: if your code relied on passing 0 as the ParentWind parameter use Execute(0) instead.
 
** Remedy: if your code relied on passing 0 as the ParentWind parameter use Execute(0) instead.
 +
* The occurrence of '\n' in e.g. captions is no longer converted to a LineFeed.
 +
** Reasons:
 +
*** Wrong results if the capion of a (radio)button is set to e.g. 'Save in "c:\new_folder\new.work"'
 +
*** You can have a LineFeed (#10) inside a Pascal string.
 +
** See also {{LazIssue|38676}}.
 +
** Remedy: use LineFeed character in captions where applicable.
  
 
===Components incompatibility===
 
===Components incompatibility===

Revision as of 19:02, 31 July 2023

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

LCL Interfaces Changes

LCL Changes

TTaskDialog support for Queries

  • Because the unit LCLTaskDialog has been deprecated, the query capabilities of LCLTaskDialog.TTaskDialog have been aded to Dialogs.TTaskDialog, albeit with a slightly different implementation.
    • New flag tfQuery: adds a query (in the form of a combobox) to the dialog.
      • New property QueryChoices (TStrings): sets the predefined answers.
      • New property QueryItemIndex: sets the ItemIndex of the combox and holds said ItemIndex when the dialog is closed.
      • New flag tfQueryFixedChoices: control wether or not the user can add his/hers won text to the combobox.
      • New property QueryResult: holds the text of the choice made when the dialog closes.
    • New flag tfSimpleQuery: adds a simgle line Edit to the dialog. Note: this flag is mutually exclusive with the tfQuery flag.
      • New property SimpleQuery: sets the initial text of the Edit.
      • Property QueryResult holds the text of the Edit when the dialog closes.

IDE Changes

Compiler Options

  • Added project compiler option for SubTarget
  • Added compiler option Write config instead of command line parameters (@). See here
  • Added predefined variable Laz_FullVersion to conditionals. See here

Debugger

  • Alt + Left-Mouse Gutter click / Ctrl-Alt-F5: Add breakpoint (if not yet set) and ,pen properties of breakpoint.

IDE Interface Changes

Components

Changes affecting compatibility

LCL incompatibility

TTaskDialog

  • The implementation of TTaskDialog has been refactored.
    • Widgetset specific implementation has been moved to the widgetset.
    • The emulated taskdialog has been moved to a new unit: TaskDlgEmulation.
    • The unit LCLTaskDialog has been deprecated.
    • Remedy: if you use TTaskDialog from (now deprecated) unit LCLTaskDialog, use TTaskDialog from Dialogs unit instead.
  • Execute now passes the handle of the active form instead of 0.
    • Reason: it makes Execute honour the tfRelativeToWindow flag.
    • Remedy: if your code relied on passing 0 as the ParentWind parameter use Execute(0) instead.
  • The occurrence of '\n' in e.g. captions is no longer converted to a LineFeed.
    • Reasons:
      • Wrong results if the capion of a (radio)button is set to e.g. 'Save in "c:\new_folder\new.work"'
      • You can have a LineFeed (#10) inside a Pascal string.
    • See also Issue #38676.
    • Remedy: use LineFeed character in captions where applicable.

Components incompatibility

Other release notes