[All]
FreeCLX updates available for download
By: John Kaster
Abstract: Mark Duncan of Kylix R&D has updated FreeCLX. Kylix 1 users can get many of the CLX bug fixes released with Kylix 2 in this public beta download
Mark Duncan of Kylix R&D has merged many of the Kylix 2 bug fixes back to the FreeCLXTM codebase. A "public beta" version of FreeCLX can be downloaded now from CodeCentral. Installation instructions are provided on the download page.
Because this a public beta, you must agree to a disclaimer before downloading the file containing the update. When you attempt to dowload the file, you will be asked if you agree to the disclaimer. The file is then streamed directly to the web server. This streaming process normally prevents auto-resuming the file with a download manager. The file is currently 2.6 MB. We apologize for any inconvenience this may cause if your download gets interrupted.
Since the changes are fairly major, Mark wants to have a short beta test before commiting everything to the FreeCLX CVS server on SourceForge. FreeCLX users are encouraged to try it out, and respond to the appropriate borland.public.kylix.* newsgroups with feedback for any problems they encounter. You can see the list of newsgroups at http://www.borland.com/newsgroups/.
Please note:
- This FreeCLX beta is only for use with Kylix 1 (Kylix 2 currently contains more fixes/features than FreeCLX)
- This FreeCLX beta is Linux-specific at the moment. It will be updated
to work on Windows in the near future (although Delphi users can
download it and use the CLX sources, but the configuration scripts and
makefiles will not work)
Updates
The remainder of this article describes the updates Mark has made to FreeCLX. If you have general questions about FreeCLX, you can ask them in the Kylix non-tech newsgroup.
General
- Added configuration script to make building/installing
easier
- Configuration options allow building of selected FreeCLX components.
- Automatically update Kylix library path and install libqtintf.so to
Kylix directory.
- Makefiles now build baseclx, visualclx, dataclx and visualdbclx
packages.
The remainder is a partial list of resolved issues:
BaseCLXTM
SysUtils.pas:
- Utf8ToUnicode will return the correct number when the source string
contains 2 byte length characters and thre destination is NULL.
- Fix memory leak in AnsiStrComp an AnsiStrLIComp.
- Fix file-handle leak in FileOpen when locking operation fails.
- ExpandTilde now supports MBCS.
- FindFirst now works correctly with faDirectory attribute.
- Resolved performance problem with WideUpperCase and WideLowerCase.
- Fixed crash when WideString literal assignment contained a value
> #255.
System.pas:
- _ReallocMem will now test whether FreeMem was successful.
- Fix possible heap / memory corruption if GetModuleFileName is passed
BufLen <= 0.
- GetModuleFileName will supply the full path to the executable if it
is called from within a CGI application running on Apache.
- GetCPUType returns correct values on 386,486-class systems.
- Fix bad problem where failing to open a TextFile would close STDOUT.
- SetTextBuf will now work on Input, Output and ErrOutput variables.
- Fix hang when setting ExitCode <> 0 in DllMain of a
dynamically loaded shared object.
Classes.pas:
- ExtractStrings will correctly handle quoted characters inside a
quoted string.
- ObjectTextToBinary can now handle multi-line international strings.
- TStream.GetSize works with streams > 2GB.
Xlib.pas:
- Fixed XUnmapWindow prototype.
- Fixed XChangeProperty prototype.
Libc.pas:
- Fixed wait4 prototype.
- Fixed some pointer-type declarations that were missing carets.
- Fixed globfree prototype.
- Fixed getitimer prototype.
VisualCLXTM
DirSel.pas:
- SelectDirectory dialog now optionally shows hidden directories.
- Fixed problem with accented characters in directory names.
QButtons.pas:
- Fixed crash when setting Glyph of TSpeedButton/TBitBtn to nil when
an Action with images is assigned
- Fix painting problem when all anchors for TSpeedButton are set and
the form is resized to shrink the TSpeedButton to less than zero Width/Height
QCheckLst.pas:
- TCheckListBox paints checkbox background in the proper color.
- Fixed speed issue with thousands of items
QComCtrls.pas:
- TListView and TTreeView event handler dispatchers are now protected.
- TMimeSourceFactory uses WideStrings instead of AnsiStrings.
- Fixed minor problem with TToolButton hints not updating in certain
circumstances when moving between buttons.
- Fixed insertion of items into TIconView
- Items added to a TIconView with Images will now align correctly.
- TListView.GetNextItem with sdAbove, sdBelow, and sdAll will return
the correct values.
- TListView.Add now increments the indices of all items.
- TListView.Insert inserts in the correct place.
- TListView.OnInsert now will actually fire.
- Fix crash with TListView.OnSelectItem when multiselecting.
- TIconView item editing will change the caption of the item.
- Fixed an number of issues with TIconView multiselect.
- Update TListView column's font when TListView's Font changes.
- TTreeView will repaint correctly when Invalidate/Repaint is called.
- TIconView.Add now returns a TIconViewItemClass.
- TListView can now have subitems *without* images.
- Fix crash in TTreeView.Items.ChangeItemTypes(itCheckBox)
- Fix hang when moving nodes in TTreeView's viewport then calling
AbsoluteIndex
- Fixed TTreeView.Selected repaint problem.
- TListView inplace editor will appear in the correct column, not just
the first column.
- Fix short loop in TIconView.GetNextItem(sdAll)
- Fix TIconView.FindItemByText.
- Add Canvas property to TIconView.
- Fix EListError when inserting an item into the IconView while the
application is closing.
- TTabControl.GetDisplayRect will return the correct value (minus the
tabs)
- Fix issue with ordering of tabs when TTabControl.HotTrack is
enabled.
- TSpinEdit streaming of Max and Min is fixed.
QConsts.pas:
- Remove duplicates appearing in RTLConsts as well.
QControls.pas:
- Hoist visibility TCustomControl.UpdateMask to protected from
private.
- Fix issue with reparenting controls into a QScrollView-based
TWidgetControl.
- Fix THintWindow repainting problem.
- TFrameControl.ClientRect will now return the area minus the frame.
QDialogs.pas:
- MessageDlg will ignore mbNone (used internally only)
- TOpen/SaveDialogs will ignore trailing LF's in a filter string.
- Allow access to TCustomDialog's underlying Form.
- Add TFindDialog.Modal property.
- Add PromptForFilename function.
- Fix another focus issue when dispatching MessageDlg.
- TOpenDialog.DefaultExt would be appended in the wrong place under
certain circumstances.
- Always focus the TFind/ReplaceDialog's Find Edit when showing.
QExtCtrls.pas:
- Fixed repaint issues when changing font in TRadioGroup/TGroupBox
- Fixed repaint issues when moving around buttons in TRadioGroup.
- TSplitter.Beveled now paints properly.
- Top-aligned TSplitter will position the resize cursor in the correct
position when the form has a Main Menu.
QForms.pas:
- Fixed problem with double OnKeyXXX events when KeyPreview = True and
no enabled components on the form.
- Can now paint on the form's canvas *after* the form paints itself.
QGraphics.pas:
- Fixed memory leaks in TCanvas and TBitmap.
- Fixed TCanvas.CopyModes to do the all supported raster operations.
- Fixed TBitmap.LoadFromResourceID
- Add ColorFromColorMap function, to convert a TColor to the Display
color.
QGrids.pas:
- Fixed a painting problem when scrolling with goRowSelect.
QMask.pas:
- Clearing the MaskEdit property no longer leaves garbage literals in
the Edit field.
QMenus.pas:
- Fixed a number of menu merging bugs, especially with non-visible
menu items.
- Fix problems clearing a TMenuItem's bitmap.
- Setting a TMenuItem's Caption from separator indicator "-" to a text
caption now works.
QStdCtrls.pas:
- TListBox RowLayout and ColumnLayout
- TMemo.Text := '' now equivalent to TMemo.Clear
- TMemo refreshes it's text viewing area when scrollbars' visibility
changes.
- TListBox will no longer change the selection once a drag operation is
initiated.
- TComboBox no longer fires OnChange when it's created.
- Fixed TabOrder issue with TComboBox
- TLabel Autosize didn't work properly when BorderStyle <>
bsNone
- Fixed TLabel Autosize problem when justification is taCenter or
taRight.
- Attempting to select the first item in a TComboBox will now work
when the dropdown list is showing.
- Fixed stack overflow when assigning one TMemo's contents to another
TMemo.
- Fixed formatting issues when TMemo.WordWrap is enabled.
- Fixed selection issues during Drag&Drop with TEdit and TMemo.
- TMemo allows re-highlighting when inside a highlighted block.
- Fixed painting problem with TLCDNumber when PointSize = ptLarge.
- Add Undo/Redo to TMemo.
- TMemo default local menu will have items enabled/disabled when
appropriate.
- Fix speed issue when adding thousands of items to TComboBox.
- Fix speed issue when adding thousands of items to TListBox.
Visual DataCLXTM
QDBGrids.pas:
- Fixed a number of painting/display issues with TDBGrid.
- Fix problem with cursor sticking on crHSplit after resizing a column
QDBCtrls.pas:
- TDBEdit will not pretend to edit read-only or aggregate fields.
DataCLXTM
DB.pas:
- Fix problem setting a BCD value with a Currency value.
- Fix validation of FMTBCD fields.
- Add precision numeric scale and size to TParam so they can be used
in parameterized queries and stored procedures.
- TDataLink UpdateRange uses Recordcount instead of BufferCount.
- TParam.Assign can now assign more TPersistent types using IStream.
DBClient.pas:
- Allow more types when setting optional parameters to DataSnap.
- Fix bug with SetIndex on detail tables.
- Remove check for active aggregates when changing aggregate index
ordering.
DBLocal.pas:
- Fix problems loading TSQLClientDataSet from a file.
FMTBcd.pas:
- Fix several crash problems with BCD arithmetic, aggregates and
operations.
SqlExpr.pas:
- Surface new RowSetSize property for block fetches (where supported)
- Allow retrieval of package metadata information (where supported)
- Surface MultipleTransactionsSupported property on TSQLConnection
- Add NoMetadata flag on TSQLDataSet descendants for performance.
- Fix exception trying to retrieve blob at EOF.
- Fix issue with BCD parameters to stored procedures.
- Add virtual OnTrace event dispatcher to TSQLMonitor.
- Fix memory leak in TSQLConnection.
- Fix bug with parameter binding for char fields.
- Return correct error for failure to bind parameters when calling
SetParameter.
- Return DataSet if requested from TSQLConnection.Execute even if
Params is nil.
- Fix memory leak in TSQLDataSet.
- Fix problems with maintaining statement after closing SQLDataSet.
- Fix bug where SQLDataSet could be left inactive after refreshing.
- Fix bug with retrieving null output params from a stored procedure.
- Fix problem retreiveing metadata for tables with mixed case names or
aliases.
- Fix problems with TSQLTables regarding use of indexes and
master-detail.