[fpc-pascal] 0.9.22 released

Mattias Gaertner nc-gaertnma at netcologne.de
Fri Mar 30 11:57:54 CEST 2007

The Lazarus team is glad to announce the 0.9.22 release. This release
is based on fpc 2.0.4.

This release can be downloaded from the sourceforge download page:

Detailed list of changes:

LazDaemon: a package providing components and IDE items to easily
  create windows services and linux daemons from Michael Van Canneyt
Large improvements in LCL interfaces for
  carbon, gtk, gtk2, qt, wince and win32

converted iso translations to utf-8 and removed all non utf-8
translations Updated translations:
  brazilian: Antônio Galvão
  finnish: from Seppo Suutarla
  german: from Joerg Braun
  indonesian: from Zaenal Mutaqin
  italian: from Mario Bonati
  japanese: from Haruyuki Fujimaki
  polish: from Pawel
  russian: from Maxim Ganetsky
  slovak: from OI and helix84
  spanish: from Jean Solis
All interfaces:
  implementing setting global cursors (Screen.Cursor), loading custom
  cursors (from .cur files or from resources) and handling
  changing cursor while drag operation (DragCursor).
  Added shapes (as .cur and .lrs files) for
    missed system cursors (crDrag, crNoDrag, crMultyDrag, ...)

gtk interface:
  omitting TComboBoxBox LM_CHANGED events during popup
  using default when gdk does not know the physical screen size,
    fixing crash on some laptops
  added menu items short cut labels, popup sub menu of menu bar
  font for TListBox items  from sergkam
gtk2 interface:
  fixed compilation for non X based display
gtk2: improved synedit speed

carbon interface:
  Improved fonts, key handling, modal forms, Carbon TTimer
    from Tom Gregorovic and Giulio Bernardi
  Removed fpcmacosall.pas, it is now part of FPC.

win32 interface:
  Fixed openfiledialogs on windows 98 and earlier
  Use GetWindowLongW and SetWindowLongW for UnicodeEnabledOS (bug 8403)
  made LCLIntf.Rectangle and TCanvas.Rectangle compatible
    with Windows.Rectangle winapi function (bug 8342)
  Do not show designer windows in the taskbar
  Fixed focus after restoring a minimized window (bug 7946)

Qt interface: Message box implementation by Philip Hess

wince interface: several improvements from Roozbeh
  Added TTimer.
  Error dialogs now appear.
  Events are now working.
  Reverted all changes to make X button close the application:
  In wince X button should just minimize application, you have
  to manually add a feature to exit program.

TAChart: from Philippe Martinole and Luis Rodrigues (bug 8269)
trayicon: added support for qt
   added tootip and popup menu support for qt from Felipe
  added tool to automatically add named types for implicit types
  multiple C header files can now be merged into one unit
SimpleIDEIntf: for easy testing IDE plugins outside IDE
IDE printing package from Darius

macosx installer: include gtk2 widgetset, based on X for now
rpm: using relative paths for desktop menu item,
  supporting more distributions

lazbuild: implemented overriding global compiler filename

  local variable assignment completion: checking for Self and Result
  implemented include directives with sub paths
  code completion: implemented adding method declaration for
    method body at cursor (reverse class completion)
  added heuristic to scan the Makefile.fpc files of the FPC sources
    for better finding sources of FPC units
  added MacPAS mode specials: IFC, ELSEC, ELIFC, ENDC,
    defined identifier, undefined identifier,
    SETC, SETC name := value, out as parameter name,
    property as parameter name

LCL: lots of test programs
LCL: Form.RestoredLeft/Top is now read from Left/Top
  while the form is in wsNormal state.
LCL: added property TCustomListBox.Count for Delphi compatability
LCL: FileListBox mask defaults to '*' on windows too,
  so directories without . in the name can be found too.
LCL: TCustomComboBox: do not fire OnSelect
  if ItemIndex is changed to -1
LCL: added TPointerToPointerTree.Remove
LCL: TSpeedButton: moving glyph right, down when down
LCL: TBitmap: freeing savestream on setting handle,
  added faster function to set handles: TBitmap.SetHandles
LCL: published Borderspacing for DB controls (bug 8472)
LCL: fixed FileUtil.FileIsExecutable to return false
  for directories (bug 8454)
IDE: don't save existing unit to the test directory,
  even if it is part of the project (bug 8271)
IDE: added file browse button in edit tool dialog (bug 8353)
  from David Guadagnini
IDE: when adding a package for dragging a component onto a form,
  try the unit owner of the class first, before the package
IDE: fixed check of FPC source directory,
  it doesn't require the compile sources anymore
IDE: check if debugger path name is an executable
  to prevent problems like bug 8454
LCL: made TPopupMenu.Popup virtual (Delphi compatible, #8395)
LCL: Added canvas gradientfill based on patch from David Guadagnini
IDE: formeditor patch from Yury Sidorov
  show Exception message text is displayed when exception occurs
  in component's constructor.
  fixed AV when destroying component when its creation failed.
LCL: published dragging related properties for TDBxxx components
LCL: published TListbox.OnDragDrop and OnDragOver
IDEIntf: improve checkgroup editor (patch from Salvatore Coppola)
LCL: checkbox, radiobutton have ParentColor true by default (bug 8284)
LCL: enable descendant grids to override DrawCellGrid
LCL: made TGraphicControl.OnPaint proteced,
  TShape.OnPaint and TPaintPox.OnPaint public
  and fixed firing TShape.OnPaint (bug 8246)
LCL: TTreeView: DisplayXXX functions now contain scrolledleft
LCL: TCanvas.CreateBrush now uses TRANSPARENT and OPAQUE
  depending on Brush.Style=bsSolid
LCL: implement calling TSpeedButton.Click for
  accelerator key (issue #7911, patch by Boguslaw Brandys)
IDE: the first unit of a project is now automaticallly the main unit,
  if you dont want this: use MainUnitID:=-1
LCL: published T(DB)CheckBox.Color and ParentColor (bug 8185)
LCL: removed RadialPie, renamed RadialPieWithAngles to RadialPie
LCL: don't call OnHide/OnShow after minimizing/restoring (bug 7255)
LCL: dbgrid: update active row if active record changed (bug 7934)
LCL: changed TControl.ControlAtPos to use Flags
IDE: message window: improved accesing treeview as list
LCL: TTreeView: accelerated TTreeNode.GetNodeFromIndex
  accessing last nodes and accelerated TTreeNode.GetIndex,
  making it possible to use TTreeView as list with 100.000 items
IDE: message window: replaced TListBox with TTreeView
LCL: also published TDBComboBox.Color and ParentColor
LCL: Application.MainForm is now set before form handle is created
LCL: default value of TComboBox.ParentColor is false.
LCL: published TComboBox.Color and TComboBox.ParentColor
IDE: you can now register your own base classes for designer classes.
   Default registered classes are TForm and TDataModule.
IDE: delete revision.inc from svn:
  it is recreated by svn2revisioninc anyway
IDE: checking lfm files now check used units first
IDE: .po files: auto removing double values
IDE: generating .po files sorted and faster
IDE: now searching designer ancestor class in units
  without .lfm files too
IDE: packages: enabled auto generating .po files
IDE: added Close Project menu item
IDE: implemented loading .po files of packages
IDEIntf: moved .po files to ideintf/languages
IDE: code explorer doesn't expand treenode
  when you double click it (bug 8042)
IDE: New tool for browsing all identifiers of
  whole packages and projects: View > Code Browser
  Note: The scanning is done in small steps on idle,
    so you have to create some events, like moving the mouse.
  Warning: When scanning with packages it will need a lot of memory
IDE: added resourcestrings for IDE short cuts
IDE: implemented auto creation .po files from .rst files
  after package/project compilation
LCL: wrap AppProcessMessage in ShowModal in
  try .. except block to catch exceptions in event handlers
  like is done for Application.Run too (fixes 7207)
IDE: updating source editor when highlighter file extensions
  have changed
LCL: Added property TApplication.Active (#8083)
IDE: added "Insert modified LGPL notice" (#7995)
IDE: closing the Run Parameters Dialog with OK sets the
  modified flag of the project (bug 7692)
LCL: OnResize and OnChangeBounds are now suspended
  until after OnCreate event
IDE: project definitions are now automatically added to all
  directories in the unit search path (same for packages)
LCL: added Delphi compatible TGraphic.Progress
LCL: moved MouseEnter,MouseLeave from private to
  protected section for TCustomSpeedButton
LCL: published TForm.OnClick (bug 8005)
IDE: accelerated writing compiler output to terminal
LCL: fix freezing app upon exception in modal form (issue #7207)
LCL: TCustomEdit.AutoSelect, TCustomComboBox.AutoSelect/CharCase
  from Funky Beast
LCL: improved stream of large objects (issue 7270)
IDE: LazDoc: lazdoc paths can now be relative
  and can contain global macros for projects and packages
LCL: made TCustomForm.IsShortcut virtual (bug 7921)
LCL: TCanvas: added line methods with TPoint
IDE: auto start of identifier completion now checks
  range operator .. and string constants
IDE: added Find in files to the Find context menu
  in the source editor (bug 7683)
LCL: moved TTranslateString to lcltype.pp
LCL: added OnSelectEditor for dbgrid
IDE: implemented auto adding package when setting
  TPicture property with TPicturePropertyEditor
LCL: published TStaticText.TabStop
IDE: environment option fpc path gives compiler name
  as example, not as prescription (bug 7812)
LCL: published TStaticText.TabOrder
IDE: fixed opening lpi as regular file (bug 7890)
IDE: component palette: aligning buttons in multiple rows
  if there is enough space
IDE: changed lazarus to use the widgetset it is compiled with
  as the default when building projects
LCL: added WidgetSetName function to TWidgetSet.
LCL: added TApplication.ApplicationType from Christian Ulrich
IDE: give errormessages if renaming new Lazarus executable
   doesn't succeed from Yury

And several hundred fixes and minor improvements.


More information about the fpc-pascal mailing list