Lazarus 4.0 release notes

From Lazarus wiki
Jump to navigationJump to search

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.

Components incompatibility

Other release notes