Sign in Join
Wiki copytemporary

Lazarus 1.2.0 release notes

Lazarus 1.2.0 was released at March 2, 2014.

Statistics:

  1. commits: 5855
  2. log: svn log -r 36507:44302
  3. resolved bug tracker issues: 552

Minor releases

List of fixes since 1.2, including Lazarus 1.2.2: Lazarus 1.2 fixes branch

LCL Interfaces Changes

LCL Changes

IDE Changes

lazbuild

Components

TAChart

TActiveX/LazActivex

New package.

The LazActiveX package contains the TActiveXContainer component and the IDE integration of the necessary tools to create ActiveX components from a type library or directly from the object (exe or dll). ActiveX is a Microsoft Windows technology and can only be used on that platform. Cross compilation to windows is possible but the typelib importer used to create the COM bindings works only on Windows (wine not tested).

See LazActiveX

TDBImage

Delphi compatible behaviour can now be set.

Lazarus TDBImage by default saves information about the file type before the image data. This allows seamless use of various file formats (.jpg, .bmp,...). Delphi does not save information about the file type.

To allow programmers to use TDBImage more flexibly, including supporting Delphi compatibility, two events to TDBImage were added:

pascal
TOnDBImageRead = procedure(Sender: TObject; S: TStream; var GraphExt : string) of object;
TOnDBImageWrite = procedure(Sender: TObject; S: TStream; GraphExt : string) of object;

If the first event is defined then it is called instead of TDBImage reading from the stream and must return the file extension as GraphExt. For example:

pascal
procedure TMyForm.TDBImageDBImageRead(Sender: TObject; S: TStream;
  var GraphExt: string);
begin
   GraphExt := 'jpg';
end;

can be used when the type of the image is always JPEG.

Similarly, if OnDBImageWrite is present then this is called instead of TDBImage writing the file extension to the start of the BLOB in the database. For example:

pascal
procedure TMyForm.PhotoDBImageWrite(Sender: TObject;
  S: TStream; GraphExt: string);
begin
  if GraphExt <> 'jpg' then
    raise Exception.Create('Can only save a JPEG Image');
end;

also works for an implicit JPEG.

TFBAdmin

This database component allows you to perform administrative actions such as:

for your Firebird (and probably Interbase) database. It works independently from TIBConnection.

Please see Firebird#Database_Administration and the example program included with Lazarus for more information.

As this is a thin wrapper over the FPC TFBAdmin component, please also see FPC documentation and examples for further details.

TFBEventMonitor

This database component allows you to get notified of Firebird (Interbase) events - generated from within the database by triggers. This is useful to reduce the frequency of polling/getting information from the database via your code.

Please see Firebird#Monitoring_Events and the example program included with Lazarus for more information.

As this is a thin wrapper over the FPC TFBEventMonitor component, please also see FPC documentation and examples for further details.

TLvlGraphControl

This new control is part of the package LazControls and used by the IDE itself as well. The control shows a graph consisting of nodes and edges as a level graph (this type of graph is also called a layered graph).

TLvlGraphControl Features

There is a simple example in examples/levelgraph/lvlgraph_dependencies.lpi.

TPQTEventMonitor

This database component allows you to get notified of PostgreSQL events - generated from within the database. This is useful to reduce the frequency of polling/getting information from the database via your code.

As this is a thin wrapper over the FPC TFBEventMonitor component, please also see FPC documentation and example programs (e.g. pqeventstest.pp) for details.

TSQLDBLibraryLoader

This database component allows you to specify the exact client library filename to load for your SQLDB connection in the LibraryName property. This component is useful if your environment has non-standard client library names.

You should set the library filename before enabling the TSQLConnection.

As this is a thin wripper over the FPC TSQLDBLibraryLoader component, please see FPC documentation for further details. For now, see e.g. TSQLDBLibraryLoader

TTIPropertyGrid,TTICustomPropertyGrid

Added event OnEditorFilter to let user define what properties to show.

Command line utility to create closed source packages

The command line utility can be compiled with:

components/codetools/examples/sourcecloser.lpi

It can remove implementations from Pascal units and can change lpk files to compile only manually and adds -Ur to the compiler options. Start it with -h to see all options.

Changes affecting compatibility

LCL incompatibilities

LCLType INVALID_HANDLE_VALUE now Handle(-1)

LCL WidgetSet Classes (wslclclasses unit)

LCL TCustomForm.AddHandlerFirstShow,AddHandlerClose,AddHandlerCreate parameter AsFirst default value changed to false

LCL TScreen.AddHandlerFormAdded, AddHandlerRemoveForm, AddHandlerActiveControlChanged, AddHandlerActiveFormChanged, AddHandlerFormVisibleChanged parameter AsFirst default value changed to false

LCL TAction.OnExecute no longer sets TControl/TMenuItem.OnClick

Double clicking on a component with an Action will now automatically use the Action.OnExecute event. That means the IDE will create the event if needed and jump to implementation in the Source Editor.

LCL TTreeView with Images no longer indents nodes without image

TBitBtn.Spacing default changed

LazUtils CreateRelativePath behaviour changed

LazUtils TrimFilename behaviour changed

LazFileUtils / FileUtil handling of pathdelimiters

LCLType: fixed typo in constant declaration

Since 1.2.4: TControlScrollBar.AutoCalcRange was removed

IDE incompatibilities

AllowDirectorySeparators no longer contains backslash under Unix

IDEIntf TOICustomPropertyGrid.Favourites was renamed to Favorites

Global SrcPath was removed

The Option Tools / Options / CodeTools / General / Additional sources was removed.

Other release notes


From the Free Pascal wiki, page "Lazarus 1.2.0 release notes", as it stood on 2020-02-18 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.