Version overview of XClass++


XClass++ up from version 5.1.x can only be used with Xbase++ up from version 2.x!

Version 5.5 Build 288 released 11/01/23:
dsArrayTable:Delete fixed: deleting last record did not set EOF flag
dsComboBox:Validate fixed: :required flag
dsEdit:SetRequired obsolete, use dsEdit:Required
dsIniFile:Refresh fixed
dsMemoryTable:countrec enhanced: when counting ::SetFilter is regarded
dsMemoryTable:countrec enhanced: new parameter bFilter for counting
dsMemoryTable:Delete fixed: deleting last record did not set EOF flag
dsNavigateDb:AddSyncblock new: define codeblock after navigating in :Skipserver
dsNavigateDb:Skipserver new: define table to skip through in background
dsNavigateDb:Synchronize new: eval :AddSyncblock
dsPicklist enhanced: supports Drag&Drop to order selected items
dsProgress:range fixed: now slider is displaying exact progress between nMin and nMax
dsSle:Validate fixed: :required flag
dsTabRider fixed: first show in correct foreground color
dsTabRider:Font fixed: font supports SetDefaultCodepage()
dsTooltips fixed: font supports SetDefaultCodepage()
dsXbrowse enhanced: char binary fields fox FoxCDX tables can be edit
dsXbrowse:AutoRefresh enhanced: can be changed during lifetime
dsXbrowse:AutoRefresh enhanced: w/o parameter the brwTimer thread object is returned
dsXbrowse:IsStable() new: TRUE, when dsXBrowse is stable
dsXbrowse:Spacekey4Select() fixed: setting was ignored
dsXBrowse:ShowImage enhanced: blob fields can be displayed in dsDataDialog and can be loaded with any file types and can be exported to any file type
dsXBrowse:ShowMemo changed: memo fields can be only displayed in dsDataDialog
dsXColumn:DisplayEmptyDate() new: do not show empty date picture
dsXColumn:ShowImage new: display of blob fields can be displayed different to settings of dsXBrowse:ShowImage
CreateAppFonts new: to support codepages for all DefaultFonts()
DeleteDir enhanced: also deleting subdirectories
DeleteFile enhanced: also deleting subdirectories
ErrorUserMessage enhanced: Array can contain codeblocks which are evaluated when an error occurs
XClassError enhanced: Active Window is added to header information in log file

Version 5.4 Build 285:
- complete code was optimized for Xbase++ workbench
dsMemoryTable      new: table class to handle an array with dataobjects
Add2String      enhanced: parameter can be a dataobject
CopyFiles2Clipboard      new: copy table into clipboard
dsXbrowse:WheelSkip      changed: defaults to Windows mouse setting
SetBrowseWheelSkip      changed: defaults to Windows mouse setting
dsXbrowse:RecID_Block      enhanced: RecId_Block can return a Dataobject, i.e. Server:ScatterName()
dsXBrowse:RefreshColData      new: refresh data of a column
dsXBrowse      fixed: X-position fault from column header to column
dsReport      fixed: thousands picture assigned to numeric field
dsReportTable      fixed: calculated length of empty field
dsRadiobutton:SetExtendMode      new: set on/off extended mode, "enabled" appearance but not editable
dsDbTable:ScatterName      new: returns DataObject, compatible with Xbase SCATTER NAME
dsDbTable:GatherName      new: takes DataObject, compatible with Xbase GATHER NAME
dsArrayTable:ScatterName      new: returns DataObject, compatible with Xbase SCATTER NAME
dsArrayTable:GatherName      new: takes DataObject, compatible with Xbase GATHER NAME
dsDbTable:ScatterDataobject      obsolet, use dsDbTable:ScatterName
dsDbTable:GatherDataobject      obsolet, use dsDbTable:GatherName
dsArrayTable:ScatterDataobject      obsolet, use dsArrayTable:ScatterName
dsArrayTable:GatherDataobject      obsolet, use dsArrayTable:GahterName
dsImage:setdata      fixed: release handle of last image shown


Version 5.3 Build 284:

dsRTF:CheckChangeState()      fixed: in rare situation ::GetParent could not be found
dsSle:picture      fixed: picture "99:99" was wrong calculated
dsXbrowse:RecID_Block      enhanced: RecId_Block can return a Dataobject, i.e.. Server:scatterDataobject
dsXBrowse:SearchRefresh()      fixed: sometimes incorrect row position after refresh
dsXBrowse:SearchWindow      fixed: not editable when no dsXColumn:setIndex() was defined
dsXColumn:ForceWidth      enhanced: now access/assign
Xbase VirtualScreen      fixed: using Xbase VirtualScreen led to runtime error

Version 5.3 Build 283:

Components in XclBase have changed. All code MUST be compiled with flag /A
AdsClass (when used) must be updated as well.
Add2String      enhanced: 2nd parameter can be an array, e.g. use return value of scatter() for CSV export
aFileRead      enhanced: file parameter enhanced to set a file attribut like "H"
aFileReadEx      enhanced: file parameter enhanced to set a file attribut like "H"
dsApp      fixed: Toolbar without Menue did not work
dsApp:SystemPowerStatus      new: callback, when computer suspends
dsBaseFile      enhanced: all file parameters in methods are enhanced to array to set a file attribut like "H"
dsCrt:center      new: reposition window after changing font
dsDataEditDialog:LbDblClickEdit      new: left button double click in an edit control switches into :editMode
dsDbeSys      enhanced: accepts name of DBE as parameter
dsDialog:settitle      enhanced: synchronizes dynamic windows menue
dsEdit:onDrag      new: enable drag&drop between Xbase++ controls within one application
dsEdit:onDrop      new: enable drag&drop between Xbase++ controls within one application
dsEdit:required      new: enhances setrequired
dsFile      enhanced: all file parameters in methods are enhanced to array to set a file attribut like "H"
dsFormgrid:save      new: Save/Restore of grid's controls coordinates
dsIniFile      enhanced: can read hidden file too
dsListbox:ClearBeforeDatalink      new: Unmark all elements before evaluating datalink
dsPushButton:CaptionPos      fixed: if a bitmap/icon shall be right of caption a set CaptionPos will be considered
dsRegistry:getvalue      fixed: error reading REG_MULTI_SZ, tailing CHR(0) are removed
dsSle      fixed: when inserting a string the cursor now is positioned after the last letter of the string
dsSle:keyboard      enhanced: CTRL+: or CTRL+; inserts date into a field
dsSle:keyboard      enhanced: SHIFT+CTRL+: or SHIFT+CTRL+; inserts time into a string field
dsSle:keyboard      enhanced: SHIFT+CTRL+DOWN-Arrrow decrements a date value
dsSle:keyboard      enhanced: SHIFT+CTRL+UP-Arrrow increments a date value
dsSle:Longtext      enhanced: text is trimmed
dsTabEditPage:LbDblClickEdit      new: left button double click in an edit control switches into :editMode
dsTabPage:SetResizeMode      new: SIZE_REPOSITION, repositioning child-controls is based on :SetResizeMode
dsXBrowse      fixed: permanent left scroll with many columns and active keyhandler (stack overflow))
dsXBrowse:CursorChangeOnKillFocus      fixed: when browse loose its focus cursor's color changes to :SetHiLiteColor
dsXBrowse:DefaultSearchKey      new: toggle focus between search window and browser
dsXBrowse:DelColumn      fixed: mismatch of column order
dsXBrowse:PageUp      fixed: first visible record is then last visible record
dsXBrowse:ReBuild      fixed: could lead to break under some circumstances
dsXBrowse:SearchRowPosition      fixed: default value 0, cursor stays at position
dsXColumn:datalink      enhanced: datalink can return dataobject
dsDialog resize      fixed: remove shapes in parent
dsXBrowse resize      fixed: remove shapes in parent
XPJ      enhanced: 2.3 compatible

Miscellaneous: several modifications for stability

Version 5.2 Build 280:

dsTabpage      fixed: centering problem if no controls inside a page
dsXBrowse      fixed: at start sometimes only the first record was displayed
dsXBrowse:delColumn      2nd parameter to not delete mark or save column

Version 5.2 Build 279:

dsCalendar      control now notices the monitor borders
dsSle      fixed: setting thousands picture
dsXBrowse      fixed: behaviour of memo edit inside the browse
dsXBrowse:HiLiteFreezedColumns      new: shows freezed columns always hilited
other      several modifications for stability

Version 5.2 Build 272:

dsComboBox      fixed: setrequired(.t.) was ignored in validation
dsComboBox      fix for GuiVersion=2: box collapse with mouse click
dsDialog:ShowPreBlock      new: codeblock evaluation before show()
dsDialog:ShowPostBlock      new: codeblock evaluation after show()
dsEdit:OnHandleEventAfter      enhanced: fourth parameter Self is passed to codeblock
dsEdit:onHandleEventBefore      enhanced: fourth parameter Self is passed to codeblock
dsHelp:DefaultFont      new: set default font for help edit see dsRTF:DefaultFontName
dsProgressItem      fixed: data corrupted and display of writing
dsRTF:DefaultFontName      enhanced: accepts full font definition: 12.Courier New.underline.bold
dsRtfEx      fixed: reset to a set DefaultFont in all situations
dsTabControl:activate      fixed: repeated calls of :activate() with set mode
dsTabPage:ShowPreBlock      new: codeblock evaluation before show()
dsTabPage:ShowPostBlock      new: codeblock evaluation after show()
dsTreeview      fixed: open context menu with F10 key
dsXBrowse      fixed: when array is connected and index shall be toggled
dsXBrowse:SearchWin      enhanced: dsXSearchWin can be assigned
dsXColumn:setWidth      fixed: setting was not considered in some constellations
dsXColumn:Alignment      fixed: setting was not considered in some constellations
dsXColumn:AddFootRow/:Footer      modified: if now font is set for footer, the dsXColumn's data font is used
Class dsXSearchWin      new: class for search window below dsXBrowse
aStrExtract      fixed: correct splitting when lRespectApostrophe is set to true
SetErrorFilename      new: creates filename for error log

Version 5.2 Build 268:

- When creating fontobjects now an unset SetDefaultCodePage() is considered.
- Calculation of tooltip position improved.
dsHelp:SetLanguage      fixed: if with AppHelp() no help was defined, this method led to an error
dsDialog:HScroll      new: access to the horizontal scrollbar object
dsDialog:VScroll      new: access to the verticalscrollbar object
dsTabpage:HScroll      new: access to the horizontal scrollbar object
dsTabpage:VScroll      new: access to the verticalscrollbar object
dsSplitPanel:HScroll      new: access to the horizontal scrollbar object
dsSplitPanel:VScroll      new: access to the verticalscrollbar object

Version 5.2 Build 267:

dsProgress fixed: under some circumstances the progress dialog stays empty

dsDbTable:GatherDataObject      new: writes DataObject into table
dsDbTable:ScatterDataObject      new: returns DataObject with named field values

Version 5.2 Build 266:

- project file for release version fixed
- source folder structure for developer version changed
- dsProgress fixed
- dsXbrowse:navigation modified
- dsXbrowse columns with controls: when connected table is empty no controls are displayed

dsXBrowse:wheelSkip      enhanced: Wheel with CTRL key pressed performs pgUp/pgDown
dsXBrowse:pgUp      changed: next page starts with last record this page
dsXBrowse:pgDown      changed: next page ends with first record this page

Version 5.2 Build 265:

- dsMle: when a marked string is deleted with the DELETE key one letter to much was deleted
- dsXColumn: fault in CalcWidth fixed
- intern dsBaseServer:popstate korrigiert
- dsFormgrid: calculation of some control constellations improved
- multiline tooltips: display improved
- dsSdiView: Resize improved
- dsReport: maximization corrected
- dsTooltip: display fault fixed

GetComputerName()      renamed to dsGetComputerName() , the old function name is translated via include definition
GetTempPath()      renamed to dsGetTempPath(), the old function name is translated via include definition
GetUserName()      renamed to dsGetUserName(), the old function name is translated via include definition
    
dsDbTable:locate      enhanced: codeblocks for bFor, bWhile get passed the table object
dsExcelData:Connected      new: returns connected data source
dsExcelData:HasHeader      new: returns true when a header exists
dsExcelData:Terminate      new: cancel the creating process
dsExcelData:WriteTable      new: creates an Excel sheet out of an data table contents
dsSle:ClickPos      new: behaviour on mouse click
dsXBrowse:DefaultDisplayLogical      new: determine default display of logical fields (class method)
dsXBrowse:DisplayLogical      new: determine display of logical fields in the current browse
dsXBrowse:DisplayLogical      enhanced: 5th parameter for NULL image
dsXbrowse:EditNull      new: allow NULL as edit value
dsXBrowse:keyHandler      new: codeblock for own key handling
dsXbrowse:ShowNull()      enhanced: if set to true, logical fields can be toggled between NULL, False and True
dsXBrowse:ShowSoftseekButton      new: displays button beside the searchwin to switch Softseek
dsXColumn:ContextMenu      new: acces the column's context menu object
dsXColumn:CreateContextMenu      new: creates context menu for a column
dsXColumn:DefaultDisplayLogical      new: determine default display of logical fields
dsXColumn:DisplayLogical      new: display of logical field in the current column
dsXColumn:DisplayLogical      enhanced: 5th parameter for NULL image
dsXColumn:EditNull      new: get/set NULL as edit value allowed
dsXColumn:HasContextMenu      new: check for unique context menu
dsXColumn:itemSelected      new: codeblock, evaluated when the column was selected
dsXColumn:setindex      enhanced: optional parameters
SetSelectImage     changed: parameters are changed, but compatible to the previous

Version 5.1 Build 255:

corrections done in dsProgressItem, dsRtf
dsArrayTable:Data     enhanced: can get passed a table object too
dsEdit:DataObject      new: exported dataobject usable like :cargo
dsEdit:OnHandleEventBefore      new: codeblock evaluated before :HandleEvent() is performed
dsEdit:OnHandleEventAfter     new: codeblock evaluated after :HandleEvent() was performed
dsExcelData      new: new class to port to and from Excel and to design an Excel worksheet (for ActiveX and ODBC)
dsHelp:enableEdit      new: set/reset help as editable
dbHelp:refresh      new: refresh the index tree or non editable help (Rtf Help only)
dlgHelpAll      enhanced: help overview shows all topics of the languages and enables editing of them
dsSle:keyboard      enhanced: CTRL-SHIFT-Arrow-Up/Down in-/decrement a date
dsSle:postValidate      new behaviour:if only the :Selectbutton is active a set PostValidate is performed when the button loose the focus
dsSplitControl:Changed      new: is set to true when a control of one of the panels was changed
dsSplitControl:ValidateAll      new: validates all edit controls of the panels
dsSplitPanel:GapBorder      new: defines the distance of the controls to the 4 edges
dsSplitPanel:PreAppendBlock     new: codeblock is evaluated before an Append() is performed
dsTabPage:GapBorder      new: defines the distance of the controls to the 4 edges
dsTabPage:PreAppendBlock      new: codeblock is evaluated before an Append() is performed
dsToolbar      new: tooltips are working in modal dialogs too
dsXBrowse:DefaultMemoChars      new: number of displayed memofield chars in a column
dsXBrowse:Spacekey4Select      new: use Space key for selection
dsXColumn:enableEdit      enhanced: set codeblock to change the editability

Version 5.0 Build 252:

Attention: In this version dsserver.ch was changed and adjusted to Xbase++ types.ch. The new defines are not backward compatible. This version of XClass++ can not be used together with older versions of AdsClass++. Both products have to be updated.
Code that deals with structure of tables has to be recomplied and checked for any comparisions of data type literals.
Alaske introduced new structure definitons due to the implementation of ProstgreSQL:
Short, Integer and LongLong are represtened by I, the length determines the size of the bytes: 2,4, or 8.
In this context all other type defines are adjusted to Alaska. See dsServer.ch

Begining from now the keyword Server is replaced by Table. That means, classnames or functions like *server (dsDbServer, dsArrayServer, OpenDbServer,..) are now called *table (dsDbTable, dsArrayTable, OpenDbTable,...). Both naming conventions exist to guarantee backward compatibility.

Set(_SET_NULLVALUE) is set by default to False

Callstack      new: Callstack as String
dsConnectionString      new: class for building up connection strings
ds3State:Convert3State      new: define translate values for the states of 3State control
ds3State: enableEdit      new: enableEdit like in dsSle
dsArrayTable:AddUserScope      new: add a record to a user scope
dsArrayTable:ClearRelation      new: remove a relation
dsArrayTable:ClearUserScope      new: remove user scope
dsArrayTable:dbRelation      new: get link expression of a relation
dsArrayTable:dbRSelect      new: get child table of a relation
dsArrayTable:EvalUserScope      new: activate or stop user scope
dsArrayTable:GetUserScope      new: get user scope
dsArrayTable:GetUserScopeName      new: get user scope
dsArrayTable:locate      enhanced: new parameter syntax,
dsArrayTable:ordcreate      enhanced: enable sorting of several fields
dsArrayTable:ScopeLastRec      new: number of recors inside a user scope
dsArrayTable:SetRelation      new: set relation to a child table
dsArrayTable:SetUserScope      new: set a user scope
dsArrayTable:UserScopeMode      new: set/get mode of user scope
dsBaseServer:Fieldinfo      new: new parameter for valtype, picture, edit_length, nullable, readonly
dsBrowse.prg      changed: now part of XCLOBROWSE.DLL
dsCellCtrl.prg      changed: now part of XCLOBROWSE.DLL
dsCellMemo.PRG      changed: now part of XCLOBROWSE.DLL
dsColumn.prg      changed: now part of XCLOBROWSE.DLL
dsCombobox:GetItem      enhanced: 2nd parameter to define the return value
dsCombobox:GetSelected      enhanced: 2nd parameter to define the return value
dsCombobox:GuiVersion      new: kind of display for GUI (e.g. free color setting for all states of combobox)
dsDataEditDialog      new: if Dialog:EnableEscKey() is true and the dialog is in editmode the edit mode will be canceled by pressing the ESC key
dsDebugLog      new: log any information to ASCII file
dsDialog:AddEditControl      new: adds an own constructed control as an editcontrol
dsDialog:Attach2Ctrl      new: position the dialog to a control's edge
dsDialog:ShowModal      enhanced: further parameter that the dialog will not be destroyed after :ShowModal()
dsEdit:EnableNull      new: enable handling for NULL values in dsSle, ds3State
dsEdit:IsNull      new: evaluate for displayed NULL value
dsEdit:OnLeaveLastEditCtrl      new: exit edit mode and save data when last edit control (dsEditDialog, dsTabEditPage, dsSplitEditPanel) looses focus
dsEdit:SuspendTabOrder      new: exclude the control from the tab-order
dsError      new: enhanced error() class
dsGlobalTable      new: parentclass for AdsClass, PQclass, SQLXPPclass
dsListbox:GetItem      enhanced: 2nd parameter to define the return value
dsListbox:GetSelected      enhanced: 2nd parameter to define the return value
dsNavigateDB:PreReadSetBuffer      new: this method replaces :preReadBuffer (compatible to former versions)
dsNavigateDB:PreWriteCheckBuffer      new: this method replaces :preWriteBlock (compatible to former versions)
dsNavigateDB:PreWriteValidate      new: this method replaces :preWriteCheck (compatible to former versions)
dsProgress:EnableAdvanceBar      new: show/supppres advance bar, messages are always shown
dsProgressBar:EnableAdvanceBar      new: show/supppres advance bar, messages are always shown
dsProgressItem:EnableAdvanceBar      new: show/supppres advance bar, messages are always shown
dsRtf:defaultColor      fixed: if set it is visible as soon the RTF is visible
dsRtf:defaultFontName      fixed: if set it is visible as soon the RTF is visible. Fontname supports attributes.
dsRtf:defaultFontSize      fixed: if set it is visible as soon the RTF is visible
dsServer.ch      changed: new defines for extended table structure,
dsSle:CreatePicture      changed: when conneted with table, use :fieldinfo to retrieve picture and edit_length
dsSle:SelectIcon      new: set icon for the select button
dsTabEditpage      new: if Dialog:EnableEscKey() is true and the tabpage is in editmode the edit mode will be canceled by pressing the ESC key
dsTabpage:AddEditControl      new: adds an own constructed control as an editcontrol
dsXbrowse:ClearSearchBuffer      new: clear internal search buffer
dsXBrowse:ClearSearchwin      new: enable/disable deleting search value in search window
dsXBrowse:forceRefresh      new: force a refresh
dsXBrowse:SetEditMode      fixed: minus operation not more supported, new parameter 0 to reset all
dsXBrowse:SetNullColor      new: set color for displayed NULL values
dsXBrowse:ShowMemo      enhanced: parameters changed to show varchar fields. parameters stay compatible.
dsXBrowse:ShowNull      new: handling NULL values for all columns
dsXBrowse:SuspendShowNull      new: toggle display of NULL values
dsXColumn      changed: when connected with table, use :fieldinfo to retrieve picture and edit length
dsXColumn:ClearSearchwin      new: enable/disable deleting search value in search window
dsXcolumn:EnableSwitchDescend      new: enable/disable switching between ascend/descend
dsXColumn:ShowNull      new: handle NULL values for the column
MsgBoxTextAlign      new: set default alignment for text inside MsgBoxes/dsConfirmbox
SetDisplayErrors      new: show/hide error messages
SetDisplayErrorTime      new: time to display error messages
SetEditColorBG      enhanced: additional color for NULL values

XClass++ up from version 4.7 XClass++ is available for Xbase 2.x too

Special for use of XClass++ with Xbase++ 2.x there are some new tools:
VXShell: command shell with environment for Xbase 2.0 and XClass++
VXLink: creates batch files to toggle between Xbase 1.9 and Xbase 2.x
VXReset: resets the setting sof VXLink
VXInst (for Xbase 2.x): sets the environment variables for Workbench with XClass++
VXInst (for Xbase 1.9): sets the environment variables for Windows

Version 4.7 Build 221:

Scroll behaviour for ODBC, PostgresSql improved
dsConfirmbox      modified: modality of dsConfirmbox improved
dsDialog:Center      modified: center position improved
dsRegistry:DeleteTree      new: delete key and all subkeys
dsSelectSleValue      enhanced: method Attach2Sle of the selection dialog to bind its position to the sle
dsSelectValue      enhanced: method Attach2Sle of the selection dialog to bind its position to the sle
dsTabPage:getCaption      fixed: returns now the tabrider caption
dsXbrowse:AppendEx      fixed: if rowedit is activated and browse is empty and 1st cell is edited, leads to error

Version 4.7 Build 220:

dsDbServer      fixed: classname of server fixed
dsMenuItemProperty:IsDefault      new: get default setting of an item
dsMenuItemProperty:SetDefault      new: set item as default (it will be displayed bold)
dsRtfEx:enableEdit      fixed: the state of the RTF's toolbar is adapted to the RTF state
dsToolbar:itemSwitchMode      fixed: error during calling this method
dsXBrowse:EnableSelectIndex      enhanced: 1st parameter also as addition of constants for all possible properties
dsXBrowse:GetHiddenColumn      new: get object or array of hidden column(s)
dsXBrowse:HideColumn      new: hide columns
dsXBrowse:Rebuild      fixed: considers the original cellwidth settings
dsXBrowse:RefreshAll      modified: only one parameter, the old one are accepted too
dsXBrowse:SetEditMode      new: set kind of edit mode by addition of constants
dsXBrowse:ShowColumn      new: show hidden columns
dsXColumn cell edit for checkbox improved
dsXColumn header can have any number of text lines
dsXColumn:AddFootRow      new: the foot can be set as several single rows
dsXColumn:FootAlignment      enhanced: now the vertical position can be determined
dsXColumn:FootCaption      enhanced: the number of foot rows are no more delimited
dsXColumn:FootColorblock      new: codeblock for value dependent footer color
dsXColumn:Footer      enhanced: access to the column foot object
dsXColumn:GetFootRow      new: returns single or an array with footrow object
dsXColumn:SetHeadControl      new: displays any control at the right edge of the header
dsXColFooter      new: class for extended column foot row
dsXColMultiFooter      new: class for internal handling with several foot rows of a column

Version 4.7 Build 218:

dsFile:LineCount          enhanced: logical parameter for faster counting
dsProgressBar fixed: background will now refreshed if no manifest exists
AppClientArea new: function to retrieve object for calculation of the desktop's clientarea dimension
MonitorInfo new: function get numbers of monitors and the dimensions
TaskbarInfo new: function get information about position and dimension of the Windows taskbar

Version 4.7 Build 217:

dsButton:SetColorBG      enhanced: 3rd parameter for color for disabled button
dsButton:ColorDisabledBG      new: access/assign color for disabled button
dsButton:ColorBG, ColorFocusBG      modified: now access/assign methods
dsContainer:DelCtrlGroup      enhanced: 2nd parameter to delete object in group
dsDialog:EnableAccelerator      new: suppress the display of an accelerator sign for all child controls
dsDic      modified: if set of lexical or exact was true the read was in some cases faulty
dsGroup:EnableAccelerator      new: suppress the display of an accelerator sign for all child controls
dsInifile:getentry      enhanced, %VARIABLE% is replaced by environment variable
dsListbox      new: is additional derived from dsEdit and thus offers an own contextmenu
dsListbox      fixed: changestate now set with keystroke too
dsOPushButton:ShowInnerFocusFrame      new: show the inner focusframe
dsOPushButton:EnableAccelerator      new: suppress the display of an accelerator sign
dsPushButton:EnableAccelerator      new: suppress the display of an accelerator sign
dsRegistry:QueryValue      modified: for REG_SZ and REG_EXPAND_SZ the buffer will be resized acc. the requested size and returnvale is trimed at chr(0)
dsSle:PostKeyboard      new: codeblock when keyboard was pressed
dsSle:SelectButtonSize      new: assign the the size for a select button
dsSplitPanel:EnableAccelerator      new: suppress the display of an accelerator sign for all child controls
dsStatic:EnableAccelerator      new: suppress the display of an accelerator sign
dsTabPage:RiderTooltipEventBlock      new: tooltip eventblock for a Pagerider
dsTabPage:RiderTooltip      new: tooltip for a Pagerider
dsTabPage:EnableAccelerator      new: suppress the display of an accelerator sign for all child controls
dsText      new: is additional derived from dsEdit and thus offers an own contextmenu
dsXBrowse      modified: right mouse click at any row, positions now the data record pointer
dsXBrowse      modified: moving and sizing of columns
dsXBrowse:SetHeadColorFG      enhanced: all head captions can be colored all together
dsXBrowse:SetFootColorFG      enhanced: all foot captions can be colored all together
dsXBrowse:SetFootColorBG      enhanced: all foot colors can be colored all together
dsXBrowse:scrollbarWidth      new: set width of scrollbar
dsXbrowse:ShowImage      new: display image and optional display the record number or record identification
dsXbrowse:ShowMemo      enhanced: optional display the record number or record identification
dsXBrowse:SuspendDataRead      new: suspend read of data
dsXBrowse:Refreshkey      new: key value which performs a browse refresh
dsXBrowse:DefaultRefreshkey      new: global key value which performs a browse refresh
dsXBrowse:ClearSelected      changed: does not perform a refreshall by itself
OpenOdbcServer      enhanced: new parameter per reference for successful query
OpenDbServer      enhanced: if no filename is passed, the current workarea will be used.

XClass++ up from version 4.5 can only be used together with Xbase++ up from version 1.90 SL1.

Version 4.6 Build 214:
For the sample applications there is a new programm in which the samples are described and can be invoked.

dsAppSplitter      improved: resizing of drawingarea's childdialog
dsFormGrid:InsItem      enhanced: bound item to right, left or center of column
dsListBox:ClearBeforeDatalink      new: unmark entries before evaluating datalink
dsXBrowse:AddFont      new: define font for value dependent use in dsXColumn
dsXBrowe:BuildGroupHeader      improved: calculation of groupheader size
dsXBrowse:FontBlock      new: codeblock for different value dependent fonts
dsXBrowse:SelectBlock      enhanced: parameter nMode 4 new
dsXColumn:DefaultDisplayLogical      new: default display of logical field in columns
dsXColumn:DisplayLogical      new: display of logical field in a column
dsXColumn:FontBlock      new: codeblock for different value dependent fonts
dsXColumn:GetIndex      new: get tagname connected to a column

Version 4.6 Build 212:

dsFormGrid:AddButtonRow      enhanced: further parameter to set all button to the same width
dsFormGrid:NewButtonRow      enhanced: further parameter to set all button to the same width
dsXBrowse:AddColumn      fixed: after the browse was displayed, addcolumn did not paint well the new column
dsXBrowse:DelColumn      fixed: after the browse was displayed, delcolumn did not paint well the columns
dsXBrowse:EnableColGrid      new: replaces ::ColSep paint column separator lines
dsXBrowse:EnableRowGrid      new: replaces ::RowSep paint row separator lines
dsXBrowse:GridColor      new: color for separator lines
dsXBrowse:InsColumn      fixed: after the browse was displayed, inscolumn did not paint well the new column
dsXColumn:EnableColGrid      new: paint right separator line of the column
dsXColumn:EnableRowGrid      new: paint row separator lines inside the column
dsMsgBox      new: wrapper class for dsConfirmbox
TransformColor      new: change RGB color, brighter or darker

Version 4.6 Build 209:

New application class: dsAppSplitter. The drawingarea is surrounded by panes which can be resized, collapsed, expanded or hid.
New SplitControl type "AppSplitter". The splitcontrol always fills out completely its parent and is with ist parent resizeable.
Splitpanels have now a title object to set titles.
dsXBrowse uses xbpCheckbox for displaying select columns and save columns.
The resizeability of dialogs and controls is improved and the maximized show of dialogs too.

dsApp:FrameClientArea      new: frame the clientarea
dsAppSlitter      new: reseizable application class with moveable side panels
InitAppSplitter      new:Opening function for the application splitter
dsDbServer:Append      enhanced: notes the setting of SetRecRecycling()
dsDbServer:GetUserScopeName      new: get name of the current userscope
dsDbServer:SetRecRecycle      new: determine the record recycling for the table
dsDialog:AddDestroyBlock      new: set additional destroyblock
dsDialog:Center      enhanced: logical value to disable center
dsDialog:centerClient      new: display the clients always centered.
dsDialog:isCentered      new: ask for centered dialog
dsDialog:GapBoder      new: gap border round about the controls
dsEdit:DefaultFieldproperty      new: defaultvalue for 3.parameter of :connect
dsEdit:DefaultHelpProperty      new: defaultvalue for 4.parameter of :connect
dsEdit:OnLeaveLastEditCtrl      new: callback slot if the last edit control shall be left
dsFormGrid:InsHLine      new: set horizontal line
dsFormGrid:InsVLine      new: set vertical line
dsFormgrid:SetDialogPos      new: disable/enable the new positioning of the dialog by the formgrid
dsIniFile:GetEntry      enhanced: parameter "A" returns entry as array
dsMenu:LockUpdate      new: similar to Xbase++ LockUpdate
dsMenu:Menubar      new: replaces the method GetMenuBar.
dsProgressItem:Reset()      new: reset the progress
dsSplitControl:AppSplitter      new: set/get type of splitcontrol
dsSplitControl:GetLeftProzentSize      new: get width resp. height of the left resp. top panel in percent.
dsSplitControl:GetPanelByID      new: get a panel object based on its ID.
dsSplitControl:Init      enhanced: the type "AppSplitter" can be set
dsSplitControl:SetPanel      new: assign panels and determine the starting size.
dsSplitControl:SplitLine      new: access to the separator line of the splitcontrol
CreateDynamicSplitPanel      new: create a dynamic splitpanel
dsSplitPanel:EnableCollapse      new: enable collapsing for the splitpanel
dsSplitPanel:GapBoder      new: gap border round about the controls
dsSplitPanel:IsCollapsed      new: get collapse state of the panel.
dsSplitPanel:IsDynamicPanel      new: check for dynamic splitpane
dsSplitPanel:IsReleaseMem      new: check for releasing the panel resources
dsSplitPanel:MinSize      new: set minimum size for panel
dsSplitPanel:PanelID      new: set/get an ID for the panel
dsSplitPanel:PanelInitBlock      new: codeblock for initialsing the dynamic splitpanel
dsSplitPanel:TitleBar      new: access the title object
dsTabPage:GapBoder      new: gap border round about the controls
dsXBrowse:DefaultRecEditIcon      new: method to set the default icons for RowEdit
dsXBrowse:DefaultRowEditColor      new: set default colors for RowEdit
dsXBrowse:delete      enhanced: further parameter to suspend a deleteblock
dsXBrowse:SetSelectMode      enhanced: new constant MARK_CHECKBOX
CreateDynamicSplitPanel      new: create a dynamic splitpanel
DbRecAppend      enhanced: parameter for indexname with deleted() sort
decTrim      new: decimals depending on precision
DeleteDir      new: delete a directory
dsConfirmBox      enhanced: options for the text can be set
ifEmpty      new: get first sign which is not empty
ifNil      new: identical with IfNull
MsgBoxPositionBlock      new: callback slot for alignment of a messagebox/dsConfirmbox
SetSelectimage      enhanced: new constant MARK_CHECKBOX
YieldEventLoop      enhanced: avoid an event for passed classes


Version 4.5 Build 199:

General modification: the setting of EnableFocusFrame of a parent form determines the painting of the focusframe for child controls.
New: an explicit setting of EnableFocusFrame of a child control overwrites the default setting of the parent.
The resize behaviour is optimized, esp. for maximisation of a dialog

dsReport      modified: resizing the reportdialog resizes the report too
Tooltips      fixed: for radiobutton, checkbox, combobox
dsApp:ChildMaximized      new: maximize 1st child window
dsAxToolbar:setitem      enhanced: syntax compatible with dsToolbar:setitem
dsBaseProperty:SetBaseProperty      obsolete, renamed to SetInitProperty
dsBaseProperty:ThreadSave      new: handle threads
dsCalendar:EnableDayOutOfMonth      new: enable/disable dates which are out of the displayed month. Default: True
dsCombobox:setdata      enhanced: optional parameter for calling itemselected
dsSle:UsAsSleTimestamp      new: handle SLE contents as timestamp with select button for date selection
dsSplitPanel:Center      changed: now Access/Assign method
dsSplitPanel:CenterGroup      changed: now Access/Assign method
dsTabPage:AccessAble      new: codeblock to control the access for a dynamic tabpage
dsToolbar:setitem      enhanced: syntax compatible with dsAxToolbar:setitem
dsTreeview:Postvalidate      new: postvalidate will be checked like any other edit control
dsXBrowse:FixColWidth      new: if True the column's set cellwidth stays maintained
dsXBrowse:Goto      enhanced: row position for record can be determined
dsXBrowse:ResizeBlock      new: codeblock after resize of the browse
dsXBrowse:RowPreValidate:      enhanced: now also for pure celledit.
dsXBrowse:SearchRowPosition      new: determine row position for searched record
dsXBrowse:SearchRefresh      new: refresh the browse and notes the setting of :SearchRowPosition
dsXColumn:EditAsTimestamp      new: handle Zelledit contents as timestamp with select button for date selection
dsXColumn:PostSelectIndex      new: Callbackslot after switching index
EnableDayOutOfMonth      new: function to set default of enable/disable dates which are out of the displayed month. Default: True
dsSelectDate      enhanced: parameters for handling SLE w/o dateformat i.e. timestamp
NetUse2UNC      new: resolve drive letter to UNC notation
nTrim      enhanced: decimals depending on precision
SetAppDialog      corrected: :border must be set inside the dialog class
Usual2Var      new: extended Xbase Var2Char()

Version 4.5 Build 198:
Add2String      new: concatenate values as strings
DisableAppMenu4Edit      new: global function to determine the appmenu's behaviour during edit-/appendmode
dsArrayServer:dbEval      new: handle bulk of records based on different conditions
dsArrayServer:dbInfo      new: get/set information for the server.
dsArrayServer:dbType      enhanced: the type can be set manualy
dsArrayServer:Delete      new: delete record(s) optional with conditions
dsArrayServer:FileName      new: set/get filename of data
dsArrayServer:Modified      new: set/get state of modified.
dsArrayServer:TableName      new: get filename
dsCheckBox:enableEdit      new: switch editable like dsSle.
dsCheckBox:SetExtendMode      new: set extended mode on/off
dsComboBox:DefaultSelected      new: set to a determined position if append is active
dsComboBox:enableEdit      new: set editable with value
dsConfirmbox      enhanced: 3 states are passed to codeblock bSet, buttons can have an activate codeblock.
dsDataEditDialog:DisableAppMenu4Edit      new: determine the appmenu's behaviour during edit-/appendmode
dsDialog:enableChildResize      modified: now access/assign
dsDialog:Show      enhanced: further parameter to avoid flicker while resizing at start up.
dsEdit:Fieldname      new: fieldname of connected database field
dsEdit:PreReadBlock      new: save fieldvalue for comparison in :PreWriteBlock
dsEdit:PreWriteBlock      new: check record for change comparing fieldvalue with :PreReadBlock
dsFormGrid:FitIntoSize      new: fit grid elements into parent
dsFormGrid:MaxRow      new: get number of rows which are added with addrow
dsHelp      modified: system memorize the last size and position of the help dialog.
     If help is set to editmode and helplable will be changed or dialog will be closed, modifications will be saved.
dsHistory:AddEntry      enhanced: further parameter to overwrite an existing entry
dsHistory:SaveHistory      enhanced: save/restore Arrays too
dsMle:XKeyboard      modified: return value of the codeblock
dsReport:PreviewZoom      corrected:
dsReport printer selection      corrected: combobox now type XBPCOMBO_DROPDOWNLIST
dsRtf:DefaultFontSize      new: default font size
dsRtf:DefaultFontName      new: default font name
dsSelectSleValue      enhanced: searchexpression
dsSelectValue      enhanced: searchexpression
dsSle:Dateformat      new: specific dateformat for a sle object
dsSle:XKeyboard      modified: return value of the codeblock
dsStatusBar:getItem      enhanced: if NIL is passed an array with all items is returned
dsTabEditPage:DisableAppMenu4Edit      new: determine the appmenu's behaviour during edit-/appendmode
dsXBrowse:CursorChangeOnKillFocus      new: change the cell cursor's color on KillFocus.
dsXBrowse:enableCursorFocusRect      new: display focus rectangle around the active cell/row.
dsXBrowse:enableIndexColor      new: mark sortable column captions with another foreground color or an image
dsXBrowse:enableSelectIndex      enhanced: further parameter to determine the sortable column's caption color/image
dsXBrowse:enableSwitchDescend      enhanced: 4th parameter to set behaviour if index is switched between ascend/descend
dsXBrowse:GetActCol      new: get current column number of the browse
dsXBrowse:GetActRec      new: get record number of a (current) row
dsXBrowse:GetActRow      new: get current row number of the browse
dsXBrowse:GetHiddenValue      new: get value of a hidden field
dsXBrowse:GetMousePos      new: get row/column and area in which a mousekey was pressed
dsXBrowse:itemSelected      enhanced: getpassed the event which invokes it
dsXBrowse:PostSelectIndex1      new: Callbackslot after switching a column index.
dsXBrowse:PostSelectIndex2      new: Callbackslot after switching a column index, all refreshing is done..
dsXBrowse:RecUnlockBlock      new: codeblock to unlock a record
dsXBrowse:ResetIndexColHeader      new: reset column header foreground color or the image
dsXBrowse:setHeadColorBG      enhanced: set bg color for the parent of the headers
dsXBrowse:SetHiddenField      new: add a hidden field as datalink
dsXColumn:EditDatalink      new: optional codeblock to edit a cell
dsXColumn:enableCursorFocusRect      new: display focus rectangle around the active cell/row
dsXColumn:CursorChangeOnKillFocus      new: change the cell cursor's color on KillFocus
dsXColumn:HeadImageActivate      new: set/get codeblock for activating an header image by mouse click
dsXColumn:PreValidate      enhanced: oCol is passed per reference to determine another column to edit
dsXColumn:UserDraw      enhanced: further parameter
DtoCC      new: DtoC always with century
SetBrowseIndexColor      new: mark sortable column captions with another foreground color or an image
SetBrowseSelectIndex      enhanced: further parameter to determine the sortable column's caption color/image
SetBrowseSwitchDescend      enhanced: parameter to set behaviour if index is switched between ascend/descend and captions color/image
SetWaitPointer      enhanced: progressbar is started if the dialog or the application has a statusbar with progress item
WorkingBoxEx      new: workingbox with cancel button

Version 4.5 Build 197:
dsAxToolbar:setItem      corrected: parameter for ResID was missing
dsBaseProperty      new: common default values for all classes
dsCheckbox:editAble      new: EditAble like the SLE
dsConfirmbox      enhanced: further parameter to modify the dialog
dsDialog:CancelDestroy      new: abort :destroy of dialog
dsDialog:Show      enhanced: new type of 1st parameter
dsFile:Init      enhanced: further parameter for buffersize
dsFile:Open      enhanced: further parameter for buffersize
dsMenu:enable/disable      behaviour of AppMenu was modified. Read the help of dsMenu
dsMenu:enableItem      enhanced: optional 2nd parameter for AppMenu
dsRtf:Editable      new: set editable of the RTF control
dsRtf:enableEdit      new: set editable of the RTF control
dsRtfEx:Print      new: print RTF
dsRtfEx:SelectPrinter      new: select printer before printing
dsSle:SelectModal      new: determine the behaviour of the selectblock function
dsSle:SetLongtextColor      new: colorFG/colorBG for longtext
dsTabControl:getPageByID      new: get page object on basis of its PageID
dsXBrowse:IsSelected      enhanced: checks if a record number is selected or whether any record is selected
dsXColumn:HeaderTooltip      new: tooltip for column header
SetEditColorBG      enhanced: 3rd color for edit controls with requested input
aFileRead      enhanced: further parameter for buffersize
AddMonth      new: add number of month to a date

Version 4.5 Build 196:
dsAxToolbar:activateItem      new: evaluate the activate codeblock of a toolbar button
dsCargoValue:CloneCargo      new: copy cargo values
dsDbServer:tablename      enhanced: optional parameters for type of tablename's return
dsEdit:EnableEditColorBG      new: use Colorsettings of SetEditColorBG() or Windows default colors
     fixed: application error if compiled w/o GUI
dsMenu:disableDummyItems      new: disable menu items w/o activating functionality
dsMle:CreateContextMenu      enhanced: 2 control groups for automatically en-/disable depending on editable state
dsSle:CreateContextMenu      enhanced: 2 control groups for automatically en-/disable depending on editable state
dsToolbar:activateItem      new: evaluate the activate codeblock of a toolbar button
dsXBrowse:DefaultRecEditIcon      new: default icons (save and normal) for RecEditMode
dsXBrowse:DoMarking      new: mark/unmark records of a browse
dsXBrowse:GetSelected      enhanced: further optional parameter
dsXBrowse:RowPrevalidate      new: prevalidation at start of rowedit
dsXBrowse:Selectblock      enhanced: if the codeblock returns False the marking process will be canceled
dsXBrowse:SetSelected      enhanced: further optional parameters
dsXBrowse:SortSelected      new: sort the internal selection array
dsXColumn:DefaultFootColor      new: default color for foreground and background
dsXColumn:DefaultHeadColor      new: default color for foreground and background
dsXColumn:UserDraw      new: codeblock for additional painting into a cell with the GRA engine

Version 4.5 Build 195:

XClass++ up from version 4.4 supports Visual Styles. For this specially the classes dsCBrowse, dsTabControl, dsTabPage, dsPushButton and dsSplitPanel were redesigned.
dsTabControl supports the positioning of the tabriders at top or bottom with Visual Styles too.
Further the page riders can be scrolled sideways.
New is the dsFormGrid class. With it dialogs can be build up dynamically at runtime without to think for positioning of controls.
Futher XClass was performed to support special character sets with different font codepages. (see the "SetDefault...Font()" functions)
The method dsEdit:isHidden() was moved into the class dsparent.
Every class inside Xclass is derived from dsParent and has so the method IsHidden() and a call of :hide() before the control is created will be considered.
Fixed: Setting of EnableAppend(.F.) of dsDataDialog/dsTabpage was not considered if the connected table is empty at start.

dsArrayServer:ordCreate      enhanced: optional parameter for descending order
dsArrayServer:Seek      enhanced: optional parameters acc. seek method of dsDbServer
dsArrayServer:SeekLast      enhanced: supports index tag
dsCalendar      fixed: if position out of desktop
dsContextMenu:itemSelected     new: itemSelected is supported now
dsDbServer      fixed: if scope and forscope are set, goBottom doesn't work properly
dsDialog:FixSize      new: if True the dialog contains its size in spite of a toolbar and/or statusbar
dsDialog:Formgrid      new: method to access a used dsFormgrid object
dsDialog:GetControlByName      new: access a control by its nameID
dsDialog:xclClientSize      new: really visible size of the clientArea
dsCheckbox:defaultValue      new: dsCheckbox considers the settings of defaultValue
dsFormGrid:AddButtonRow      enhanced: only for tabpages: parameter for Y-distance from the lower page border
dsFormGrid:AddControl      new: add an external control with an ID to get access via :GetControl()
dsFormgrid:init      enhanced: optional parameter for GridID
dsFormGrid:GetControlOrder      new: returns array with controls in their create order
dsFormgrid:GridID      new: set/get a unique ID for a dsFormgrid
dsFormgrid:Status      new: get Xbase object status: XBP_STAT_INIT, XBP_STAT_CREATE
dsImage      fixed: display disappears
dsMenu:SetItem      modified: if a parameter is set which is used inside a connected toolbar button, its properties are set too
dsMenu:ResetItem      modified: if a parameter is set which is used inside a connected toolbar button, its properties are set too
dsMle:CreateContextMenu      enhanced: 2nd parameter to use the items of default context menu with the new one
dsPopupDialog:setPosBlock      new: codeblock to position the dialog while it is is build up.
dsPopupDialog:title      enhanced: if no titlebar is set the title appears inside the row where the close button is located
dsPopupDialog:titlebar      enhanced: if set to true the dialog appears with titlebar
dsProgress:OnCancel      new: activate codeblock for the cancel button
dsProgress:Reset      new: reset the bar to zero
dsProgress:Terminate      new: terminate the progress. The dialog will not be closed!
dsRadioButton:getValue      fixed: after destroy :getValue didn't return the selected value
dsRtfHelp      fixed: passed help title wasn't displayed
dsSle:CreateContextMenu      enhanced: 2nd parameter to use the items of default context menu with the new one
dsSle:disable      fixed: a disable() before :create() was not considered
dsSle:refreshLongText      new: refresh display of longtext
dsSplitPanel:Formgrid      new: method to access a used dsFormgrid object
dsSplitPanel:GetControlByName      new: access a control by its nameID
dsTabPage:Center      enhanced: new PAGE_HCENTER, PAGE_VCENTER, PAGE_CENTER
dsTabpage:Formgrid      new: method to access a used dsFormgrid object
dsTabpage:GetControlByName      new: access a control by its nameID
dsTooltip      fixed: a chr(9) sign inside the caption is not converted to spaces
dsXBrowse:OnDestroyEdit      new: codeblock which is evaluated if an celledit control will be destroyed
dsXBrowse:PreSearch      enhanced: current searchstring is passed per reference to the codeblock
dsXColumn:SetIndex      enhanced: codeblock for PreSearch. current searchstring is passed per reference to the codeblock
dsXCellBmp      fixed: display disappears
dsSelectSleValue      fixed: if the index is changed inside the selection it is not reset to the origin one
dsSelectValue      fixed: if the index is changed inside the selection it is not reset to the origin one
ISODow      new: get weekday based on Monday = 1
ResetWaitPointer      new: reset mousepointer to arrow
SetEditColorBG      new: set base colors for edit control background depending from its state
SetWaitPointer      new: function to set the mousepointer to hourglas and optional to start a progress with a message
LDF files      fixed: dependent on the setting of CHARSET the umlauts sometimes weren't displayed properly
LoadLanguage/LoadSysLanguage     fixed. if the same language DLL is serial loaded with these functions
XLang.exe      fixed: if GetStringRes function contains only the constant as parameters without commas
XLANG.EXE      new: several projects can be administrate via a selection
XLANG.EXE      new: if a project file has several targets, the targets for language scanning can be selected
XClass      modified: XClass is now compiled without the /ga flag.
     If you work with an ANSI editor:
     Write SET CAHRSET TO ANSI into your source (the best is into AppSys()).
     If you want to use charset OEM you must compile your application with the flag /ga
     see XClass help Hints->Compiling the application

Version 4.5 Build 194:
- This version was special reworked to work proper with Windows 7.
- dsReport offers now the possibility to change paper orientation, -size and -bin while building the report.
- dsMenu was reworked totaly to use new styles.
  
dsAdsDic:Pack      enhanced: further parameter to open/not open the table index
dsBaseServer:ForceBreak      new: if an error occurs a BREAK is invoked
dsCalendar      fixed: display with 120 dpi
dsCalendar      fixed: language resources are used for name of days and months
dsCalendar      enhanced: with given control size the used font size is calculated automatically
dsCalendar:MinDate/MaxDate      fixed:
dsDbServer:Seek      enhanced: further parameter to seek last incidence of search expression
dsDic:Pack      enhanced: further parameter to open/not open the table index
dsGraProperty:currentSizeEx      new: get the total width/height with buttons inclusively
dsGraProperty:EnableColorBG      enhanced: used as method optional parameters for customizing the color selection
dsGraProperty:EnableColorFG      enhanced: used as method optional parameters for customizing the color selection
dsGraProperty:FontPreSelect      new: manipulate the properties of the xbpFontDialog
dsGraProperty:LinkControl      new: use external control for displaying the selected properties
dsGraProperty:SetFontProperty      new: restore font via the returned array of GetFontPorperty
dsGraProperty:setPos      fixed: position of buttons
dsGraProperty:setSize      fixed: size of buttons
dsMenuItemProperty      new: class to set the properties of a menu item
dsRepDesign:CreateTable      enhanced: property array for data enhanced for number of decimals and picture
dsRepDesign:EndPageBlock      enhanced: codeblock get further parameter for identify the last print
dsRepDesign:SetOrientation      new: change printer orientation while building up the report
dsRepDesign:SetFormSize      new: change printer formsize while building up the report
dsRepDesign:SetPaperBin      new: change printer paperbin while building up the report
dsReport:Printer      enhanced: accepts a printer device name too.
dsReport:PrintRow      enhanced: property array enhanced for number of decimals and picture
dsReport:setFormSize      new: set paper format see Xbase help setFormsize
dsReport:setPaperBin      new: set paper bint see Xbase help setPaperBin
dsReport:TextDPISetting      new: scale of text size
dsReportTable:AvoidHeadPrint      new: avoid printing of table header
dsReportTable:ColBreakData      new: array with columns where a newline is forced
dsReportTable:Init      enhanced: property array for data enhanced for number of decimals and picture
dsReportTable:RowHeight      new: height of the current row
dsSubMenuProperty      new: class to set the properties for a submenu
dsXBrowse:BuildGroupHeader      fixed: new groupheader after create occurs an error
dsXBrowse:colorblock      enhanced: further parameter is passed to recognize that the alternate background color should be set
dsXColumn:colorblock      enhanced: further parameter is passed to recognize that the alternate background color should be set
GetAppPrinterList      new: returns an array with available printer device names
SetMenuBarTextColor      new: base color setting for the vertical menu text
SetMenuBarTextFont      new: base font setting for the vertical menu text
SetMenuColor      new: base settings for menu colors
SetMenuStyle      new: base setting for the menus surface and capabitility.
dsMenu:AddItem      enhanced: return value changed and images for disabled/enabled item
dsMenu:BarTextFont      new: font for vertical text inside the menus.
dsMenu:GetItemProperty      new: get dsMenuItemProperty object of an item
dsMenu:InsItem      enhanced: return value changed and images for disabled/enabled item
dsMenu:ResetItem      enhanced: return value changed and images for disabled/enabled item
dsMenu:SetItem      enhanced: return value changed and images for disabled/enabled item
dsMenu:SetBarTextColor      new: colors for vertical text inside the menus.
dsMenu:SetBitmap      enhanced: images for disabled/enabled item
dsMenu:SetMenuColor      new: color for menus
dsMenu:Style      new: Setting of the menu's surface and capabitility

Version 4.5 Build 193:
dsCalendar      modified: supports setting of UseVisualStyle
dsDic:Refresh      new: reread dictionary
dsEdit:SetFocusToCtrl      enhanced: 2nd parameter to force the focus to self
dsFormgrid      corrected: calculation of right bound buttons
dsFormgrid:InsItem      enhanced: further parameter for surface controls i.e. listbox
dsPopDialog      modified: if parent control loose the focus the popdialog will be closed
dsProgressBar      modified: supports setting of UseVisualStyle
dsProgressBar:Autorun      fixed: didn't process a passed value
dsProgressBar:SetPosAndSize      new: compatible to Xbase++
dsSle      fixed: if no picture is set and different type values are assigned an error occurs
dsSle      fixed: picture "@KD" not recognized if no value or no datalink were set
dsSle:currentSizeEx      enhanced: optional parameter to get size w/o longtext
dsSle:setSizeEx      new: set size inclusive select button size and may be longtext size
dsSplitControl      modified: supports setting of UseVisualStyle
dsTabControl      modified: supports setting of UseVisualStyle
dsTabPage      fixed: if page bigger than tabcontrol, no scrollbar appeared
dsTabPage:PageArea      new: access to the pagearea which is the parent of the drawingArea
dsXBrowse:getStableBlock      new: get stableblock on basis of its ID
dsXBrowse:Rebuild      fixed: existing groupheader generates an error
dsXBrowse:SelectButtonPos      new: default position of an cell edit control's select button inside the browse
dsXBrowse:SetFreeze      fixed: sometimes no data or header was visible
dsXColumn:SelectButtonPos      new: position of an cell edit control's select button
SetBrowseSelectButtonPos      new: application wide default position of cell edit control's select button inside browse
OpenOdbcServer      enhanced: further parameters for shared and readonly
XLang.exe      enhanced: accepts GetStringRes expression w/o comma or text

Version 4.5 Build 192:
new controls and functions:     
dsArrayServer      new: handles array as server object like a database server object
dsDefaultMle      new: container class for default behaviour of MLEs
dsGraProperty      new: control for setting BG/FG color and font (see demo dsGraProperty)
dsProgressBar      new: progressbar control
dsCloneFont      new: creates a new font objekt with the same properties like the passed one
dsCopyFont      new: copies the font properties into another font object
EnableAutoSleDate      new: SLE with date format is used as dsSleDate with select button and calendar
MleDefaultSetting      new: function to set application wide default values for MLE (thread save)
dsPopupDialog      new: popup dialog i.e. displaying or selecting data
dsSleStatic      new: SLE which simultates a static control but holds the copy/datalink abilities of a SLE
SelectColorPalette      new: colorselection with the Windows color palett. Returns numeric color value
SelectColorPaletteRGB      new: colorselection with the Windows color palett. Returns a RGB array {r,g,b}
SetDefaultBrowseHeadFont      new: set default font for browse column header
SetDefaultBrowseFootFont      new: set default font for browse column foot
dsLang.exe      new:Tool to simplify development of multilanguage applications
    
further modifications:     
dsApp:SetSplashColorBG      new: background color for splash image
dsButton, dsPushbutton, dsToolbar      improved: display of icons
dsCalendar      new: the buttons for month skipping and close are now Visual Style
dsComboBox:addItem      enhanced: 2nd per reference passed parameter gets the position of the last added element
dsDateSle      fixed: position of date selection dialog can not be out of desksize
dsDialog:PreparePosAndSize      new: change dialog size and pos before show is invoked
dsDialog:show      enhanced: parameters for showing dialog maximized or withspecial pos and size
dsDialog:EndDialog      fixed: if modal and :EndDialog() get passed more than one parameters they were not returned.
dsEdit:defaultValue      corrected: defaultValue is only used if the parentform is set into append mode
dsEdit:ForceDefaultValue      new: manual force to set the default value independent from append mode.
dsIniFile:getSection      changed: the values of the entries are used without comments
dsItemButton      new: statusbar item as pushbutton supporting Visual Styles
dsListBox:enableUnselect      new: enable to unselect an item if the markMode is set to XBPLISTBOX_MM_SINGLE
dsMenu:preContext      enhanced: if codeblock returns false, no context menu is displayed
dsMle:ignoreEnter      new: ignore Enter key for new line, now it activates the next control. Ctrl-Enter leads to new line instead.
dsProgress:Advance      enhanced: new parameter lForce
dsRepDesign:StartTextBreak      new: enable newline for a text inside a PrintText/PrintRow.
All following prints recognize the newline
dsRepDesign:EndTextBreak      new: ends the ability for newline for a text inside a PrintText/PrintRow
dsSelectValue, dsSleSelectValue      enhanced: selection dialog with toolbar now
dsSle:_DoSelectDate      new: internal date selection routine for dsSleDate
dsSle:EnableAutoSleDate      new: overwrites the setting of the global function EnableAutoSleDate() for this control
dsSle:UseAsSleDate      new: use dsSle as dsSleDate
dsSleDate      fixed: position of date selection dialog can not be out of desksize
dsXBrowse      fixed: now column headers with more than two rows possible
dsXBrowse:AlternateRowColor      new: enable alternating row colors
dsXBrowse:EnableAutoSleDate      new: columns with date format use in edit mode the dsSleDate with select button and calendar
dsXBrowse:SetAlternateRowColor      new: set the alternating row colors
dsXBrowse:SaveEdit      new: saving both: cell or row edit mode
dsXBrowse:CancelEdit      new: cancel both: cell or row edit mode
dsXBrowse:SearchWinText      new: determine "search:" text inside the searchwindow
dsXBrowse:SelectColIndex()      enhanced: if passed column 0 browse ist set to no index (original order)
dsXColumn:CellEditType      enhanced: new ctrl type: CELL_SLEDATE
dsXColumn:CreateHeaderContextMenu      new: contextmenu for column header
dsXColumn:EditCtrlProperty      chanced: this method is the former EditCtrlAssignment. The old method stays valid.
dsXColumn:EnableAutoSleDate      new: column with date format uses in edit mode the dsSleDate with select button and calendar
dsXColumn:HeaderContextMenu      new: access to the contextmenu of column header
dsXColumn:IsHeaderContextMenu      new: check for existing contextmenu of column header
all dsBrowseChoice functions      enhanced: selection dialog with toolbar now
CreateDir      changed: it returns now true if the directory already exists
dsBrowseMultiChoice      changed: if dialog was canceled the returned value is NIL, normally it is an array
"V_" validation functions      fixed: with second call the validation of an SLE returned always true

Version 4.4 Build 191:
dsAxToolbar:AddItem      enhanced: caption for menu button
dsAxToolbar:AddItemXB      new: addItem acc. xbpToolbar:additem
dsButton:Icon/SetIcon/DisabledIcon      enhanced: icon can now be located in another DLL/EXE
dsCalendar      fixed: error when skipping month and minDate is set
dsCalendarDialog:enableBorder      new: setting border for modal dsCalendarDialog
dsDialog:Enddialog      fixed: if modal Enddialog accepts NIL as passed value and returns NIL too
dsDialog:GetControlByName      changed: mapped to Xbase:ChildFromName()
dsPushButton:Icon/SetIcon/DisabledIcon      enhanced: icon can now be located in another DLL/EXE
dsSplitpanel      enhanced: resize logic, see demo: splitter
dsSplitPanel:GetControlByName      changed: mapped to Xbase:ChildFromName()
dsTabPage      enhanced: resize logic, see demo: app_mdi
dsTabPage:GetControlByName      changed: mapped to Xbase:ChildFromName()
dsTabPage:SetBitmap      enhanced: bitmap can now be located in another DLL/EXE
dsTabPage:SetIcon      enhanced: bitmap can now be located in another DLL/EXE
dsToolbar:addItem      enhanced: icon can also be passed as icon filename
dsToolbar:ImagePosAndSize      new: setting pos and size inside the button for all images
dsXBrowse:      fixed: edit of checkbox was wrong
     fixed: sometimes sizing of freezed column was wrong
     fixed: if browse is not filled completely an up movement can create an error
dsXBrowse:Footer      fixed: right trimed footcaption was sometimes not visible
dsXBrowse:SearchWindow      fixed: with Visual Styles refresh to often
Focusframe      fixed: painting of focusframe sometimes wrong color
CreateDir      fixed: with empty drives no directory was created
Doy2D      new: counterpart to doy()
dsSelectDirectory      changed: if cancel button is pressed the function returns NIL
EnableCalendarBorder      new: default function for setting border for modal dsCalendarDialog
aFileReadEx      enhanced: instead of a filename a stringbuffer can be passed too
Sec2Time      new: calculate time from seconds
Time2Sec      new: calculate seconds from time

Version 4.4 Build 190:
Resize dsXBrowse before show      fixed: header could not be visible
dsInfile      enhanced: accepts now entries like ENTRY={|x| iif(x=="A", .T., .F.)} this means only the first equal sign is used as separator
modal dialog      fixed: if a modal dialog will be closed a short flickering of the parent dialogs could occur.
dsButton/dsTabPage:Icon/Bitmap      fixed: if button disabled, icon/bitmap was not displayed as disabled
dsCalendar      enhanced with "close" button
dsPushButton:Icon/Bitmap      fixed: if button disabled, icon/bitmap was not displayed as disabled
dsPushImage:Icon/Bitmap      fixed: if button disabled, icon/bitmap was not displayed as disabled
dsPushButton:CaptionPos      new: access/assign the position of the caption
dsPushButton:ImagePos      new: access/assign the position of the image
dsPushImage:setAutoSize      enhanced: now SizeMode 0=imagesize not changed, 1=imageheight changed, 2=imagesize changed
dsPushImage:ImageSize      new: access/assign the size of the image

Version 4.4 Build 190:
Resize dsXBrowse before show      fixed: header could not be visible
dsInfile      enhanced: accepts now entries like ENTRY={|x| iif(x=="A", .T., .F.)} this means only the first equal sign is used as separator
modal dialog      fixed: if a modal dialog will be closed a short flickering of the parent dialogs could occur.
dsButton/dsTabPage:Icon/Bitmap      fixed: if button disabled, icon/bitmap was not displayed as disabled
dsCalendar      enhanced with "Close" button
dsPushButton:Icon/Bitmap      fixed: if button disabled, icon/bitmap was not displayed as disabled
dsPushImage:Icon/Bitmap      fixed: if button disabled, icon/bitmap was not displayed as disabled
dsPushButton:CaptionPos      new: access/assign the position of the caption
dsPushButton:ImagePos      new: access/assign the position of the image
dsPushImage:setAutoSize      enhanced: now SizeMode 0=imagesize not changed, 1=imageheight changed, 2=imagesize changed
dsPushImage:ImageSize      new: access/assign the size of the image

Version 4.4 Build 189:
BoM      first day of month
BoW      begining (monday) of week
DoY      new: industrial date, number of days since New Year
Eastern      new: date of Eastern
EoM      new: last day of month
MoM      new: first monday of month
QofY      new: quarter of year for month or date
dsCalendar     new: calendar control
dsCalendarDialog     new: dialog with date selection via dsCalendar
dsDataEditDialog:Registerselector     new: register a select dialog
dsDataEditDialog:Unregisterselector     new: unregister a select dialog
dsDialog:setQueryClose     enhanced: accepts NIL too
dsPushButton     corrected: bitmap for/with disabled button
dsSelectDate     new: function to select a date via dsCalendar
dsSleDate     new: SLE with integrated date selection via dsCalendar
dsTabEditPage:Registerselector     new: register a select dialog
dsTabEditPage:Unregisterselector     new: unregister a select dialog
SetAppFont      new: set font for all controls
    
Version 4.4 Build 188:
ClearKeybuffer      enhanced: passed control which keyboard events shall be removed
dsApp:SplashBlock     new: See sample SplashMenu
dsAxToolbar:enableScroll      new: displays scroll button if toolbar isn't full visible
dsAxToolbar:setTooltip      new: set a tooltip
dsBaseServer:getFilterBlock     new: get codeblock of filter condition
dsBaseServer:pushstate     fixed: saves and restores Xbase++ dbSetFilter correct
dsBaseServer:popstate      fixed: saves and restores Xbase++ dbSetFilter correct
dsCargoValue      new: all classes are derived from dsCargoValue. It's to set specific values to nameIDs
dsConfirmbox      enhanced: fore- and backgroundcolor can be determined
dsDataEditDialog:SetEditBlock     new: call back slot for SetEditMode
dsDbServer:goto     fixed: behaves no like Xbase++ dbgoto, 2nd parameter defaults to true
dsDbServer:IndexKeyValue     enhanced: optional parameter tag/order
dsDbServer:SeekLast      enhanced: optional parameter for index
dsDic:OpenGlobalServer     enhanced: opens global databases
dsDic:TableExist     new: find out whether a table is set inside the DIC
dsDic:tutorial     new: flag to declare global server
dsEdit:ForceValidate     new: force validation also for not editable control
dsEdit:ignoreEditMode      new: keep the control's edit property if parent:setEditMode is invoked
dsFormGrid      new: class for dynamical designed dialogs at runtime
Help system      enhanced: now supports a field "POS" inside the help table for sorting inside the "SECTION" area. For this the table needs the index: tagname: "SECPOS" key: upper("SECTION")+upper("POS")+upper("HELPID"). Further the section and pos can be edited inside the help overview browse
dsHelp:CloseDB      new: close the linked server object
dsHelp:OpenDB     new: link help with a server object
dsIniFile:getPathEntry      enhanced: 4th parameter for completing a relative path
dsMenu:ActivateBlock      new: get/set the activateblock of a menu prompt
dsOBrowse      new: the former dsXBrowse, it is useable as static DLL XCLOBrowse.dll (Visual Style is not supported)
dsOPushButton      new: the former dsPushbutton (Visual Style is not supported)
dsXPushbutton:setColorExBG      new: set enhanced backgroundcolors
dsXPushbutton:setColorExFG      new: set enhanced foregroundcolors
dsPickList      enhanced:11th paarmeter to reset the listbox with original values
dsPrintProperty      new class for setting the properties for the dialog of printsettings
dsPushButton      new: is derived from xbpPushbutton, supports Visual Style and is code compatible to the former dsPushbutton. It supports all enhanced features of the former dsPushbutton
dsPushbutton:imageBorder      new: set image x/y distance to the button's frame
dsPushbutton:setColorExBG      new: set enhanced backgroundcolors
dsPushbutton:setColorExFG      new: set enhanced foregroundcolors
dsReport      new: inside preview the print and printer settings canbe manipulated.
dsReport:enablePrint      new: enable/disable print option
dsReport:PrintProperty      new: returns object of dsPrintProperty
dsSelectSleValue     enhanced: Parameter uField can be a codeblock too
dsSle:SelectBlock     enhanced: clear settings
dsSle:SetLongText     enhanced: clear settings
dsSle:UserButton      new: Pushbutton to replace the selectButton
dsSplitControl     new redesigned, supporting Visual Styles
dsSplitPanel      new redesigned, supporting Visual Styles
dsSplitPanel:destroyBlock      new: set a destroy codeblock. It is evaluated before the dialog's destroy is invoked.
dsSplitPanel:GetControlByName     new: find a control via Setname()
dsStatic:nameID      new: see dsEdit:nameID
dsTabControl      new redesigned, supporting Visual Styles
dsTabPage      new redesigned, supporting Visual Styles
dsTabPage:destroyBlock      new: set a destroy codeblock. It is evaluated before the dialog's destroy is invoked.
dsToolbar:addItem      enhanced: 8th parameter for determine the bitma transparency
dsToolbar:enableScroll      new: displays scroll button if toolbar isn't full visible
dsToolbar:setTooltip      new: set a tooltip
dsTooltip:tooltipEventBlock      new: event block for manipulating the pos/size of a tooltip
dsTabPage:GetControlByName      new: find a control via Setname()
dsXBrowse      new: class totaly redesigned to support Visual Style and displaying any count of fields. The class is code compatible to the former dsXBrowse
dsXBrowse:ActiveColumn      new: access to active column object
dsEdit:changeState      new: dsXbrowse supports an own ChangeStateHandler see dsEdit:changeState
dsXBrowse:ClearSelected      new: clear all selections and refresh browse
dsXBrowse:Colpos      enhanced: accepts column object too
dsXBrowse:EnableRowEdit      enhanced: backgroundcolor
dsXBrowse:EvalBulkColWidth      new: eval all changed col width and build browse new
dsXBrowse:goto      enhanced: 2nd parameter to refresh databuffer
dsXBrowse:headerLbUp     new: set header codeblock for mouse event xbeM_LbUp
dsXBrowse:headerRbDown     corrected: set header codeblock for mouse event xbeM_RbDown
dsXBrowse:hitLeftblock     new: codeblock, if the column cursor shall be positioned left of the first column
dsXBrowse:hitRightblock     new: codeblock, if the column cursor shall be positioned right of the last column
dsXBrowse:IsBulkColWidth      new: access to start of bulk changing colwidth
dsXBrowse:PreSelectIndex      enhanced: concerning dsXColumn:SetIndex
dsXBrowse:Repaint      enhanced: optional row and column to repaint
dsXBrowse:SearchWinButton      new: optional Pushbutton inside searchwindow
dsXBrowse:SearchWinFont      new: font object for browse searchwindow
dsXBrowse:SearchWinFontCompoundName      new: font compoundname for browse searchwindow
dsXBrowse:Seek      enhanced: now useable for all kinds of datatables
dsXBrowse:setFont      new: set xbpFont object for all or determined columns
dsXBrowse:setFontCompoundName      changed: for all or determined columns
dsXBrowse:SetHiLiteColor      new: set color of cursor
dsXBrowse:SetselectMode      enhanced: backgroundcolor
dsXbrowse:ShowSelected     new: show only selected records
dsXBrowse:softSeek     new: seek is done generally with this Softseek setting
dsXBrowse:StartBulkColWidth      new: start of bulk changing colwidth
dsXColumn:dataFontObject      new: xbpFont object for data area
dsXColumn:footFontObject      new: xbpFont object for foot string
dsXColumn:headFontObject      new: xbpFont object for column header
dsXColumn:searchBlock      new: for column specific search
dsXColumn:setFont      new: font for column data area
dsXColumn:SetIndex      enhanced: optional indexkey can be passed
dsXColumn:Setwidth     new: set column width in pixel
dsXColumn:ShowMemoDialog      new: show memofield contents inside a dialog
dsXColumn:softSeek      new: Softseek setting for a column
FoxTimeStamp      neu: creates a Timestamp string for FOXDBE tables
ifNull     new: returns the first value which is not NIL/NULL
IsAppHelp      new: check for activ application help
RemoveEvent      enhanced: paramenter for object
SetDefaultBrowseFont      enhanced: accepts font compoundname or xbpFont object
SetDefaultButtonFont      enhanced: accepts font compoundname or xbpFont object
SetDefaultCodePage      new: default codepage for application
SetDefaultEditFont      enhanced: accepts font compoundname or xbpFont object
SetDefaultMessageFont      enhanced: accepts font compoundname or xbpFont object
SetDefaultMleFont      enhanced: accepts font compoundname or xbpFont object
SetDefaultTabRiderFont      new: default font compoundname or xbpFont object for tabrider
SetDefaultTextFont      enhanced: accepts font compoundname or xbpFont object
YieldEventLoop      enhanced: parameter aExclude
BOW      new: monday's date of any date
DoY      new: industrial date, number of days since New Year
MoM      new: 1st Monday of month