| 1.4.35 |  | Bug Fixes 
bBrowser and bDataColumn
The columns are destroyed when the method bBrowser:Use() is called or the bBrowser is destroyed.
bBrowser and cell inputFixed an error that occurs when pasting a value from the clipboard into the cell edit control.
bBrowser and bKeyCommandIt is checked after the execution of a bKeyCommand now whether the ALT key was pressed. In this case all WM_SYSCHAR events are removed from the event queue. This is necessary because the hot key of a menu could otherwise be executed.
bBrowser and DBServer with scopeFixed an error which could occur when a scope was defined in a DBServer and the DBServer was skiped to EoF. In this case the RecNo was not correct.
bBrowser and AdoServer:SetFilter()Fixed an error which could occur when a filter on bookmarks was defined in an AdoServer and then a field value was changed in a record.
bArrayServer:FieldPut()If a numeric value with decimals was put into a numeric field without decimals, then the decimals were put in the field, too. This bug is fixed now. The numeric value is converted with the function Integer() into an integer now and then put it into the field.
 | 
| 1.4.34 |  | Bug Fixes
 
bBrowser:PropertyPut(#ScrollThumbDragRefresh)The value for the Property #ScrollThumbDragRefresh was evaluated wrongly. At the value FALSE the visible records was permanently updated at the scrolling with the slider and at the value TRUE only when the scroll process is ending. However, the meaning of the values is defined as follows. At TRUE the visible records are permanently updated and at FALSE only when the scroll process is ending. The values are evaluated correctly now.
bCompoundValue and rotated textA rotated text (Font:Rotation > 0) was not displayed correctly from the class bCompoundValue.
bDBServer:SuspendNotification()According to the documentation the call of the method bDBServer:SuspendNotification() returns a numeric value. Instead the server object is returned. The return value of the method was changed now that it agrees with the documentation. The same also applies to the method bDBServer:ResetNotification().
bDSSelection and ADSThe ADS always works with the '.' as a decimal separator in the function Str(). This is independent which setting is defined in VO with the function SetDecimalSep. For this reason the decimal separator is set before and restored after evaluating the selection (see method bDSSelection:Update()).
 | 
| 1.4.33 |  | Bug Fixes | 
| 1.4.32 |  | Bug Fixes 
bBrowser:SetContextMenu()If one or more context menus were set with the method bBrowser:SetContextMenu(), then these were not destroyed when the bBrowser were destroyed. This caused a memory leak.
 | 
| 1.4.31 |  | Bug Fixes 
bBrowser:AutoRefreshTimeBy a previous patch the AutoRefresh functionality (bBrowser:AutoRefreshTime) was not supported any more. This problem was solved now so that the AutoRefresh functionality is supported again.
bBrowser and NULL-Values in column footerIf a NULL value (0, FALSE, NULL_DATE, ...) was assigned to a column footer (bDataColumn:Footer), then this value was not displayed.
bBrowser and background color for column caption and footerThe area for the column caption or footen was drawn in the color gray till now if this was not visible (see also bDataColumn:CaptionVisible or bDataColumn:FooterVisible). Now, the background color which is defined in the bViewStyle for the column caption or footer is used. If no background color is defined, then the area is drawn in the color gray.
bArrayServer:RecordPut()Till now, an available sorting was not updated at the call of the method bArrayServer:RecordPut(). This problem was solved now. If the sorting shall not be updated, then the value FALSE can be submitted in the new argument <lUpdateOrder>. The value TRUE is used as default.
 | 
| 1.4.30 |  | Bug Fixes 
bBrowser and scrollbarsIn Windows 2000 and Windows XP can be displayed context menus for the scrollbars. Till now, the menu items "Top" and "Bottom" were not supported in these context menus. This problem is solved now.
bIconIn VO 2.7a it could happen that the icons were not shown or suddenly disappeared.
 | 
| 1.4.29 |  | Bug Fixes 
bBrowser:IsCaptionClickable()bBrowser:IsColumnMovable()
 bBrowser:IsColumnResizable()
 bBrowser:IsRowResizable()
 The bBrowser has not invoked the methods internally till now. The methods were only for the programmer to be able to determine the states. The bBrowser invokes the methods internally now, too. It is therefore possible to implement a new class inherits from the bBrowser and to overwrite the methods to change the behavior of the bBrowser.
bDBServer:SuspendNotification()A program crash occurred in the method bDBServer:SuspendNotification() under certain circumstances.
bArrayServer and DataFormat BDATAFORMAT_DBASEA bArrayServer object can be created with a data array in the argument <auData>. The data array contains the data to the defined fields. If for a field with the data type String the length of the value from the data array is greater than the defined field length then the value is cut on the defined field length now.
 | 
| 1.4.27 |  | Bug Fixes 
bBrowser:ResizeBuffer()Under certain circumstances the bBrowser crashed sporadically in the method bBrowser:ResizeBuffer(). This bug is solved now.
bDataColumn and numeric valuesNumeric values in a column are always drawn as string. To convert a numeric value into a string, the method bDataColumn:FieldSpec:Transform() is called. But this call creates a string with leading blanks. If such a value shall be shown with left alignment in the column, then the leading blanks are disturbing very much. Because of this all leading blanks are removed now.
bIcon:SizeThe strong typing was removed.
bCompoundValue + CRLFCRLF in bCompoundValue are supported correctly now.
bCompoundValue:GetValue()If for the argument <iValue> the value 1 was passed on then a NULL_OBJECT was returned instead of the first value.
bCompoundValue:DeleteValue()If for the argument <iValue> the value 1 was passed on then the first value wasn't deleted.
 | 
| 1.4.26 |  | Bug Fixes 
bBrowser and ClipperKeysThe bBrowser supports the return key correctly now, if ClipperKeys are activated in its owner. Pressing the Return key was ignored till now if ClipperKeys were activated.
bBrowser:CurrentColumnIf with the assign bBrowser:CurrentColumn the current column is set, then the cell edit is activated now at the setting bBrowser:AutoEdit #Permanent.
bBrowser:SkipToCell()The method supports the new argument <lAutoEdit>. The argument defined, whether at the setting bBrowser:AutoEdit #Permanent a cell edit shall be activated automatically. If the argument is not specified, then the value TRUE is used as default.
bBrowser:AutoEdit #ExcelWhen pressing the return key, then the callback method CellDoubleClick() is called at the setting bBrowser:AutoEdit #Excel now. This behavior was already supported at the other settings of bBrowser:AutoEdit.
bBrowser:AutoEdit #PermanentAt the setting bBrowser:AutoEdit #Permanent the possibility is supported now, to canceling the cell edit within the callback method CellEdit() and moving the table cursor on another cell.
bBrowser and cell editIf error messages were shown within the callback method CellEdit(), it could happen that the error message was displayed repeatedly.
bCompoundValueThe position of a subordinate bCompoundValue wasn't relatively shown to the primary bCompoundValue.
bDBServer:SetSelectiveRelation()The support of the selective relation contained an bug if the controlling order was descending.
 | 
| 1.4.25 |  | Bug Fixes | 
| 1.4.24 |  | Bug Fixes 
bBrowser and cell editIf a cell edit were accept with the RETURN key, then played a beep under certain circumstances.
 If a cell edit were accept with the TAB key, then under certain circumstances the callback method CellEdit() was called 2 times with the mode BEDIT_END. If due to an cell edit validation a standard error message were displayed by the bBrowser, then the caption of the error message was in German. This concerns only the bBrowser international.
bBrowser and vertical column valuesIf for the column values a font with rotation (see also bFont:Rotation) were defined, then the column values were not drawn correctly.
bBrowser:GoTop()bBrowser:GoBottom()
 Before a record movement the data server sent no NotifyIntentToMove notification to the registered clients.
bBrowser and vertical column valuesIf in the detail server of a selective relation no result existed, then a wrong value was returned.
 | 
| 1.4.23 |  | Bug Fixes 
Selective Relation without resultIf in the detail server no result were contained of a selective relation and then in the detail server the arrow up key were pressed, then the detail server was wrongly positioned.
Selective Relation and speedThe speed of selective relations was improved with large data bases.
 | 
| 1.4.22 |  | Bug Fixes 
bBrowser and change column width with the mouse?With changing the column width with the mouse, in the Windows taskbar a empty window was always shown. This problem is now solved.
bBrowser and DBServer:OrderScopeIf in the DBServer a OrderScope was set and no records existed to the OrderScope, then an empty record was shown in the bBrowser.
bBrowser:Refresh()With bBrowser:SelectionMode #Simple could arise it, that after the call of bBrowser:Refresh() several records were selected.
bArrayServer:FieldPos(),bArrayServer:FieldGet(),
 bArrayServer:FieldPut()
 If field names were specified as string, it could occur that these were not found, if not the exact spelling (upper and lower case) were considered. This problem is now solved.
bComboEditOutside of the bBrowser the control bComboEdit did not work correctly, if in the opened choice dialog a value were accepted by pressing the ENTER key or by a mouse double click. In this case the choice dialog was opened automatically again.
 | 
| 1.4.21 |  | Bug Fixes 
bDataColumn:Init()If a column is created with the <symFieldMode> #Access or #AccessAssign and no field in the data server exists to the access, a HyperLabel is created for the column automatically now. Otherwise the HyperLabel is used for the field.
bBrowser and bGrid:BackgroundListIf a bGrid:BackgroundList is defined in the bBrowser or in an opened column, this is shown in the grid now if the data server does not contain any records.
bBrowser:GridInEmptyAreaIf bBrowser:GridInEmptyArea is True, the color conditions of the bBrowser or a defined BackgroundList in the Grid of the bBrowser are used when drawing in the empty area of the bBrowser.
bBrowser:CaptionArea,bBrowser:DataArea,
 bBrowser:DynamicDataArea,
 bBrowser:FooterArea,
 bBrowser:SelectorArea
 The accesses has always returned an area whose width and height at 1 pixels were too large.
bArrayServer and SortsDuring the processing of sorts (CreateOrder(), Append(), Delete(), OrderInfo()) errors in the sort expression and/or sort condition are intercepted now. The methods do not break any more now but create a error object.
bDBServer:SuspendNotification()bDBServer:ResetNotification()
 The methods bDBServer:SuspendNotification() and bDBServer:ResetNotification() are called also in the servers of the relations now.
 | 
| 1.4.20 |  | Bug Fixes 
bBrowser and delete recordNow it is scrolled automatically toward file beginning (SetDeleted(True)), if the last record is visible however not the first record.
bBrowser and delete records in detail server of a selective relationIf in the detail server of a selective relation a record is deleted, now also the vertical scrollbar is updated so far as the deleted records are not visible (SetDeleted(True)).
bBrowser and filterIf in the server a filter were active and the current record were no more contained in the filter by a change of field value, the bBrowser was not correctly updated. Additionally it could occur with following record movements that the bBrowser did not react any longer.
 | 
| 1.4.19 |  | Bug Fixes | 
| 1.4.18 |  | Bug Fixes | 
| 1.4.17 |  | Bug Fixes 
bBrowser:EditClose()Sometimes with Windows XP it came with edit controls of the class ComboBox to program crashes.
bBrowser and ADSImproved support of the ADS RDD "ADSADT", if the record recycling is active (as deleted marked records are reused with an append).
bBrowser and ADS 6.11The RDD of ADS 6.11 does not support the access DBServer:OrderKeyNo any longer as performant as in previous versions. The speed problem (>200% more slowly) occurs, if SetDeleted() is on TRUE. The Browser uses the access DBServer:OrderKeyNo to position the slider in the vertical scrollbar. The speed problem affects thus directly to the speed of the bBrowser. The problem can be solved if around the call of DBServer:OrderKeyNo the following code is implemented.
 
oServer:SuspendNotification() lDeletedOld := SetDeleted(False) oServer:Skip(0)   iKeyNo := oServer:OrderKeyNo   SetDeleted(lDeletedOld) oServer:ResetNotification() This workaround is now implemented in the bBrowser.
bArrayServer:Pack()An existing order was not correctly processed with the method bArrayServer:Pack().
 | 
| 1.4.16 |  | Bug Fixes 
bBrowser:TabKeyModeWith the bBrowser:TabKeyMode
 
#MoveToEditableCell oder
#MoveToSelectableCell the focus was not moved correctly by the bBrowser to the next and/or previous control.
bBrowser:TabKeyMode and bBrowser:AutoSkipWith the bBrowser:TabKeyMode
 
#MoveToEditableCell or
#MoveToSelectableCell in connection with bBrowser:AutoSkip=True the focus was passed to the next control if the table cursor was on the last column and the TAB key was pressed. This behavior is wrong. The focus may be passed to the next control only if bBrowser:AutoSkip contains the value False or the table cursor is on the last record and no bBrowser:AutoAppend is active. For all, which used this failure of the bBrowser, now the possibility exists to assign the symbol value #WhenFocusChange to bBrowser:AutoSkip. With this new value the bBrowser behaves as before. | 
| 1.4.15 |  | Bug Fixes 
bBrowser and vertical ScrollbarWith the bBrowser:RowMode #Absolute the thumb button of the vertical scrollbar is more optimally supported.
bBrowser:Recalculate()With ScrollbarMode #Auto the scrollbars was not always hidden, if all data within the visible area could be shown.
 | 
| 1.4.14 |  | Bug Fixes 
bBrowser and SeekWith a Seek in the linked server the bBrowser positions the found record now into the center of the data area.
bBrowser and one visible recordIf in the bBrowser only one record were visible, it could come with vertical navigating to failure and/or program crashes.
bBrowser:EditClose()If during a cell input, the edit control were scrolled out the the visible area with the vertical scrollbar and afterwards another record were clicked with the mouse, the bBrowser flickered.
 | 
| 1.4.13 |  | Bug Fixes 
bArrayServer:Seek()bArrayServer:Seek() never found a record, if bArrayServer stood on EoF before.
 | 
| 1.4.12 |  | Bug Fixes 
bArrayServer:CreateOrder()The definition of a FOR condition caused an error.
bDataColumn and column captionIf in the column no own caption is defined, the value from
 DataServer:FieldSpec(...):HyperLabel:Caption is used, if this is defined. | 
| 1.4.11 |  | Bug Fixes 
bBrowser:EditCreate()Now edit controls are supported also which are inherited from the classes
 
SingleLineEdit,
MultiLineEdit and
RichEdit The VerticalSpinner is now also correctly supported.
bBrowser:Cut(), bBrowser:Paste()Cut & Paste are supported during a cell edit.
bDBServer and RecordFilterWith existing indexes the records were not always processed in the correct order.
 With the RecordFilterMode=DBRFM_EXCLUDE with bDBServer:Seek a record was never found. | 
| 1.4.10 |  | Bug Fixes 
bGUI ClassesThe DLL could not be dynamically loaded and unloaded afterwards again.
Right mouse button and context menuIf the right mouse button were pressed on a negative position, the program crashes.
 | 
| 1.4.9 |  | Bug Fixes 
bItemList:Put()New method for setting an element.
bBrowser:TabKeyModeThe TabKeyMode could cause in Windows 2000 programm crashes.
 If the bBrowser were the only control, the table cursor moved to the next/previous row even if the mode bBrowser:AutoSkip were not enabled. | 
| 1.4.8 |  | Bug Fixes 
bDataColumn:PropertyPut():New properties could not be set.
bDataColumn:PropertyDelete(),bDataColumn:PropertyGet(),
 bDataColumn:PropertyPut():
 New property: #EditClass
 Name of the class (as Symbol) that is to be used for editing a cell value.
 | 
| 1.4.7 |  | Bug Fixes | 
| 1.4.6 |  | Bug Fixes | 
| 1.4.5 |  | Bug Fixes | 
| 1.4.4 |  | Bug Fixes 
bBrowser:CellEdit()With the call of self:oEdit:PerformValidations() the old and not the new value were examined. With the call of self:oEdit:__Update() now the new value is examined.
bBrowser:PropertyDelete(),bBrowser:PropertyGet(),
 bBrowser:PropertyPut()
 New property: #DefaultButonManage
 Logical value defines whether the default PushButton is to considered, if the bBrowser has the focus and the RETURN key is pressed.
 | 
| 1.4.3 |  | Bug Fixes 
bBrowser and Keyboard CommandsIn key commands (class bKeyCommand) the TAB key is supported now.
bBrowser:CellEdit()If in the owner of the bBrowser no callback method were defined, the edit control was not validated.
bArrayServer:Skip()Crash in the bArrayServer:RecordFilter, if the method bArrayServer:Skip() were called without argument.
 | 
| 1.4.2 |  | Bug Fixes | 
| 1.4.1 |  | Bug Fixes |